我按照一步一步的步骤如何在这个link的Visual Studio解决方案中包含一个dll项目 当我进行测试以检查dll函数是否与应用程序链接良好时,它会识别它。但?我现在有一个错误,看起来像下面的内容:
PS:init_test()是一个Dll函数 APP是应用程序并且在其功能之一(image(void))中,我包含了DLL:init_test()
Error 4 error LNK2019: unresolved external symbol "public: static void __cdecl DLL::init_test(unsigned long)" (?init_test@DLL@@SAXK@Z) referenced in function "public: void __thiscall APP::image(void)" (?image@APP@@QAEXXZ) C:\Users\xxx\apps\APP\APP.obj
Error 5 error LNK1120: 1 unresolved externals C:\Users\xxx\APP.exe
让我试着代表我做了什么:
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
class DLL
{
public:
static void image_test();
};
void APP:image()
{
....
....
DLL::image_test();
}
答案 0 :(得分:1)
更改
class DLL
{
public:
static void image_test();
};
到
class DLL_API DLL
{
public:
static void image_test();
};
这样就可以导出image_test(),除了你的dll之外你还会得到一个导入库。这应该有助于解决有关同一主题的其他一些问题。
还记得为此工作DLL_EXPORTS只能在.dll中定义,所以在所有配置中将它添加到您的C / C ++ /预处理器/预处理器定义中(调试,发布,RelWithDebInfo ...)