C++ 无法链接简单dll解决方案
我尝试在VisualStudio2013中创建简单的dll项目,就像 但当我尝试构建解决方案时,它会出现一个错误:C++ 无法链接简单dll解决方案,c++,dll,C++,Dll,我尝试在VisualStudio2013中创建简单的dll项目,就像 但当我尝试构建解决方案时,它会出现一个错误: error LNK1104: can not open file "D:\prj\dlltest1\Debug\dlltest1.lib" D:\prj\dlltest1\ConsoleApplication1\LINK ConsoleApplication1 但dlltest1是dll项目。为什么有一个.lib文件?已更新:因为没有导出符号,所以没有生成lib的原因。
error LNK1104: can not open file "D:\prj\dlltest1\Debug\dlltest1.lib" D:\prj\dlltest1\ConsoleApplication1\LINK ConsoleApplication1
但dlltest1是dll项目。为什么有一个.lib文件?已更新:因为没有导出符号,所以没有生成lib的原因。我刚查过你的密码。 您应该有一个*.h文件来定义这样的导出符号
#ifdef WIN32PROJECT1_EXPORTS
#define WIN32PROJECT1_API __declspec(dllexport)
#else
#define WIN32PROJECT1_API __declspec(dllimport)
#endif WIN32PROJECT1_API int fnWin32Project1(void);
__declspec(dllimport) someFunction(int firstArg, int secondArg)
然后,编译器将需要.dll和.lib文件来链接到共享库,但在执行过程中,只需要.dll文件
但是,如果您使用DLL函数
LoadLibrary
、GetProcAddress
和FreeLibrary
,则链接不需要.lib。实际上,VS生成.lib和.DLL文件。.dll是运行时库,在运行时执行.exe应用程序时需要该库。如果要生成.exe应用程序,则需要.lib文件,但为什么VS没有生成适当的lib?如果生成了该文件,请更好地检查它,并在项目设置中相应地调整链接器路径