如何使用visual studio编译c++ dll

How to compile a c++ dll using visual studio?

本文关键字:c++ dll 编译 studio 何使用 visual      更新时间:2023-10-16

我有一些c++类,我想编译成一个dll文件。当我试图编译项目时,我收到一个无法解析的外部符号错误:

  1. 错误LNK2019:在函数tmainCRTStartup中引用的未解析符号_WinMain@16
  2. 致命错误LNK1120: 1未解决的外部

这是我到目前为止所做的:

我刚刚创建了一个新的win32项目,选择了dll和空项目。然后我将所有的h和cpp文件复制到目录中,并将它们添加到项目中。

此外,我添加了一个文件"DllMain.cpp",其中包含以下代码:

#include <windows.h>
BOOL APIENTRY DllMain( HANDLE hModule, 
                   DWORD  ul_reason_for_call, 
                   LPVOID lpReserved
                 )
{
    return TRUE;
}

由于某些原因,该项目被配置为构建.exe。

但是你可以很容易地修复你的项目。打开属性对话框,选择"配置属性/常规"。在右侧找到"配置类型"项,将其从"应用程序"更改为"动态库"。

还请记住,您需要在所有配置(即调试和发布)上更改此设置。

新建Win32应用程序项目时,在向导中选择"应用程序设置",应用程序类型选择"DLL"。它将以空的DllMain开头。

你说你这样做了,但它不应该寻找WinMain。要再次检查您是否真的在构建DLL,请查看项目设置->常规,并检查:

  1. 配置类型为"动态库(.dll)"
  2. MFC的使用设置为"使用标准Windows库"
  3. 使用ATL是"不使用ATL"

这个链接可能会帮助你http://msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx也检查你的项目属性对话框中的链接器设置。如果您使用其他库,请确保在链接器选项卡中设置了它们的路径。