【问题标题】:Visual C++ 2010 Express doesn't generate DLL fileVisual C++ 2010 Express 不生成 DLL 文件
【发布时间】:2012-09-19 07:23:53
【问题描述】:

我有一个 Visual C++ DLL 项目(只是一个项目,没有父解决方案)并且需要构建 DLL。

构建命令不会生成任何错误消息。在 Debug 文件夹中有mylibrary.lib,但没有mylibrary.dll

我查看了Visual Studio 2010 C++ DLL project - No output DLL file!,但我的情况与那个问题不同。在构建输出中,没有类似

的消息

MFCInterop.vcxproj -> C:\temp\sotest\Debug\MFCInterop.dll

只有

MFCInterop.vcxproj -> C:\temp\sotest\Debug\MFCInterop.lib

为了生成 DLL 文件,我该怎么做?

【问题讨论】:

  • 您确定要构建 DLL 吗?也许您在项目设置中设置了静态库生成。

标签: visual-studio-2010 visual-c++ dll


【解决方案1】:

我可能是生成的dll但不在Debug文件夹中。您应该为项目设置输出目录。为此转到

项目属性--->常规--->输出目录--->.\Debug

【讨论】:

  • 谢谢!对我来说,.dll 出现在 SolutionDirectory\Debug 中,而不是我预期的 SolutionDirectory\ProjectDirectory\Debug
【解决方案2】:

如果您的 DLL 没有公开任何内容,则可能会发生这种情况。 通常应使用以下构造公开 DLL 的公共 API 类:

#ifdef YOUR_DLL_EXPORTS
    #define YOUR_API __declspec(dllexport)
#else
    #define YOUR_API __declspec(dllimport)
#endif 

class YOUR_API ClassToExpose {};

然后你必须在 DLL 项目中定义 YOUR_DLL_EXPORTS。 如果您没有公开的东西,则不会生成 DLL。我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多