Visual Studio:关于在两个项目之间链接函数的问题

时间:2011-08-17 14:12:33

标签: c++ visual-studio

我想这是一个新手问题,但无论如何。我有一个由两个项目组成的解决方案(1个DLL和1个控制台应用程序)。控制台应用程序包含DLL项目中的一些标题,当然,在构建它时,链接器告诉我有一些未解析的符号。 我已经从应用程序添加了一个参考到DLL项目(项目属性 - >参考 - >添加新参考),但这仍然无效。

我找到的唯一解决方案是复制与第二个项目中的标题相对应的.cpp文件,但我想这不是最好的方法,但我想有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

我猜你会使用Visual Studio而不知道dllexport。

默认情况下,Visual Studio 导出DLL外部函数的名称。为此,您需要明确告诉它:

__declspec(dllexport) void f() {...}

并在使用DLL的那一侧:

__declspec(dllimport) void f();

这样第二个将使用导入的函数,第一个将导出它。

答案 1 :(得分:0)

确保dll项目是控制台应用程序的依赖项(右键单击解决方案资源管理器中的控制台项目并选择项目依赖项)..

然后,在配置属性 - > gt; linker-> general下的控制台项目属性中,确保将“链接库依赖关系”设置为“是”。