Visual Studio 2008 C ++。问题引用DLL项目

时间:2011-02-07 13:11:17

标签: c++ visual-studio-2008 dll reference

我有一个包含两个项目的解决方案:一个是带有简单类的简单dll(dll_test)。第二个项目引用dll项目,应该用于测试dll项目(dll_tester)。 dll项目构建正常,但测试人员项目总是抱怨无法找到dll_test。 lib 而不是dll_test。 dll 就像它应该的那样。

同样,这是在Windows 7计算机上使用Visual Studio 2008。我认为它没有什么区别,但是我用dll_test项目启动了解决方案并稍后添加了dll_tester项目。

有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

啊,Visual Studio中DLL和依赖项的乐趣。我发誓,C#编码员很容易:)

您确定实际创建了LIB文件吗?如果您的DLL项目没有导出任何符号,您将无法获得lib文件,并且您将无法链接到任何内容。所以你需要确保:

  1. 您的DLL项目定义了MYPROJECTNAME_EXPORTS之类的内容。在创建项目时选中相应的框时,Visual Studio会为您定义此符号。如果你不这样做,那很简单。确保上述符号位于DLL的预处理程序指令中,并在公共头文件中确保定义了以下内容:

    #if defined(MYPROJECTNAME_EXPORTS)
    #define MYPROJECT_API __declspec(dllexport)
    #else
    #define MYPROJECT_API __declspec(dllimport)
    #endif
    
  2. 一旦我们知道MYPROJECT_API已被适当定义,我们需要确保我们希望导出的任何类或函数都包含在其声明中:

    class MYPROJECT_API SomeClass
    {
    }; // eo class SomeClass
    
  3. 该类需要实现,实际上编译器尚未优化的东西。

    简而言之,找不到.lib文件的原因是因为没有生成因为没有符号从中导出。

答案 1 :(得分:0)

右键单击解决方案资源管理器中的dll_tester,然后查看“项目依赖项...”并确保已选中dll项目