C++ 针对没有导入导出的DLL进行链接
我试图将我的项目与一个DLL链接,我们称之为.DLL,我得到了一个未解析的外部符号\uuuu imp\uuuuu?func@@YA\u JXZ。我转储/导出了DLL和库,只看到了?func@@YAJXZC++ 针对没有导入导出的DLL进行链接,c++,visual-studio,dll,linker,declspec,C++,Visual Studio,Dll,Linker,Declspec,我试图将我的项目与一个DLL链接,我们称之为.DLL,我得到了一个未解析的外部符号\uuuu imp\uuuuu?func@@YA\u JXZ。我转储/导出了DLL和库,只看到了?func@@YAJXZ 因此,如果有人能解释1为什么基金装饰名称中的后缀不同2为什么DLL或解引用函数的库文件中没有_imp__func名称?通常,imp不应该出现在DLL中,而应该出现在静态导入库中,我将不胜感激。名称不同的原因可能是因为它不是一个函数,而是一个函数指针。并且它是在头文件中声明的函数。获取_imp_u
因此,如果有人能解释1为什么基金装饰名称中的后缀不同2为什么DLL或解引用函数的库文件中没有_imp__func名称?通常,imp不应该出现在DLL中,而应该出现在静态导入库中,我将不胜感激。名称不同的原因可能是因为它不是一个函数,而是一个函数指针。并且它是在头文件中声明的函数。获取_imp_uu导出需要声明具有_declspecdllexport属性的函数。看起来这个DLL是用一个.def文件构建的,这并不少见。您可以通过修复客户端代码端的声明而不声明它来避免此错误。总之,你正在使用的.h文件有点不稳定。我们看不到它。我将尝试它,但函数是用declspec export/import宏声明的。我刚刚发现dll可能是用gnat编译的,这意味着可能使用了mingw。它也可能有后果,不是吗?