Visual C++ 2010 Express 不生成 DLL 文件
Posted
技术标签:
【中文标题】Visual C++ 2010 Express 不生成 DLL 文件【英文标题】:Visual C++ 2010 Express doesn't generate DLL file 【发布时间】: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 吗?也许您在项目设置中设置了静态库生成。 【参考方案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。我希望这会有所帮助。
【讨论】:
以上是关于Visual C++ 2010 Express 不生成 DLL 文件的主要内容,如果未能解决你的问题,请参考以下文章
基于 microsoft visual c++ express 2010 的 64 位构建
microsoft visual c++6.0和micorostf visual c++ 2010 express有啥区别
如何使用 Visual C++ 2010 Express 从 32 位环境为 64 位 Windows 编译 Qt?
Visual Studio C++ 2010 Express中的程序错误