不完全确定您的问题是什么,但是:
您使用哪个选项并不重要,这只是向导为您做了什么的问题;如果您使用第三个选项,那么向导会在您的头文件中创建一个如下所示的位:
#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif
其工作方式是在 DLL 项目中 TEST_EXPORTS 在编译器选项中定义,因此 TEST_API 计算为 dllexport 从而告诉链接器导出这些符号。如果你在另一个项目中包含这个头文件,它会将 TEST_API 定义为 dllimport,它告诉编译器在运行时在 DLL 中链接到它。这种导出符号的#define 方法被广泛使用且易于阅读。
为了在 DLL 中调用函数/类,您需要通过以下两种方式之一导出符号:a) 使用 __declspec(dllexport) [这在几乎所有情况下似乎都是更方便的选项]或 b) 使用 .DEF 文件在你的项目中
还想提一下,您需要在解决方案中包含 DLL 项目以获取 .exe 文件或 DLL 编译生成的 .lib。