Visual c++ VC++;链接外部库(与dll的接口) 我在Windows中对C++是新的,AM试图编写一个简单的Win32 COLLUB应用程序,它只给外部库调用一个API。

Visual c++ VC++;链接外部库(与dll的接口) 我在Windows中对C++是新的,AM试图编写一个简单的Win32 COLLUB应用程序,它只给外部库调用一个API。,visual-c++,hyperlink,Visual C++,Hyperlink,这个外部库是一个.lib文件,我相信它是DLL的接口 在查看其他帖子后,我做了以下操作:- 在vc++项目中添加库/头 将库添加到链接选项 已将dll复制到windows\system32目录,以防万一 并试图编译,但我得到下面的错误 1> AnyFirewallengeNecInterfaceTodll.lib(AnyFirewallEngine.obj):错误LNK2001:未解析的外部符号“long\uu cdecl EyeballGetModule\u AnyFirewall(void)

这个外部库是一个.lib文件,我相信它是DLL的接口

在查看其他帖子后,我做了以下操作:-

  • 在vc++项目中添加库/头
  • 将库添加到链接选项
  • 已将dll复制到windows\system32目录,以防万一
  • 并试图编译,但我得到下面的错误

    1> AnyFirewallengeNecInterfaceTodll.lib(AnyFirewallEngine.obj):错误LNK2001:未解析的外部符号“long\uu cdecl EyeballGetModule\u AnyFirewall(void)”(?EyeballGetModule\u AnyFirewall@@YAJXZ)

    有趣的是,有错误的函数似乎不在头文件中,所以我相信它可能在DLL中

    我的控制台应用程序只有一行:-对函数af_init()的调用


    还有什么我可以尝试的吗?

    您链接的库看起来像一个静态库,而不是DLL的导入库。你必须回到这个库的作者或供应商那里,询问正确的库或正确的链接说明。好吧,也许我错了,也许库是静态的。我在库上做了一个dumpbin.exe,它显示文件类型:library。我还尝试将源代码编译为C(与C++相反),并尝试使用stdcall vs cdecl调用方法,但没有成功。不幸的是,SDK文档simplay说,这应该与VS2010一起使用,为了使用C,我应该使用库AnyFirewallengineInterfaceTodll,所以我只是假设它可能确实是一个导入库。dumpbin/all将_af_init显示为公共符号之一,所以我认为我的链接方式一定有问题?看起来.lib试图调用DLL文件,因为链接器抱怨的函数调用确实在DLL中找到了!所以我只需要弄清楚如何告诉链接器它在DLL中寻找什么