如何在 Visual C++ 中构建导入库 (.lib) 和 DLL?

2021-12-25 00:00:00 visual-studio dll import c++

我想要一个单独的 Visual Studio 项目来构建一个 DLL 文件和一个导入库 (.lib) 文件.(导入库是一个静态链接库,负责在其他使用它的项目中加载该 DLL 文件.

I want to have a single Visual Studio project that builds a DLL file and an import library (.lib) file. (An import library is a statically-linked library that takes care of loading that DLL file in other projects that use it).

于是我去了Visual Studio C++ 2008 Express Edition,创建了一个类库类型的新项目,并将配置类型"设置为动态库(.dll)".

So I went to Visual Studio C++ 2008 Express Edition, created a New Project of type Class Library, and set the "Configuration Type" to be "Dyanamic Library (.dll)".

但是当我构建解决方案时,我看到的唯一相关输出文件是一个 DLL 文件;我没有看到生成任何 LIB 文件.我查看了项目目录和所有子目录(Release 和 Debug).

But when I build the solution, the only relevant output file I see is a DLL file; I don't see any LIB file getting generated. I looked in the project directory and all subdirectories (Release and Debug).

我相信可以同时构建 LIB 和 DLL 文件,因为 在 MSDN 上它说链接器在构建 DLL 时创建导入库." 另外,该网站的另一个用户正在使用 Visual C++ 同时创建 LIB 和 DLL 文件.

I believe that it is possible to build a LIB and a DLL file at the same time because on the MSDN it says "The linker creates the import library when the DLL is built." Also, another user of this website is creating LIB and DLL files at the same time using Visual C++.

那我该怎么办?

推荐答案

通过选择类库",您无意中告诉它使用 C++ 的 CLI(托管)扩展来制作 .Net 库.

By selecting 'Class Library' you were accidentally telling it to make a .Net Library using the CLI (managed) extenstion of C++.

相反,创建一个 Win32 项目,然后在下一页的应用程序设置"中选择DLL".

Instead, create a Win32 project, and in the Application Settings on the next page, choose 'DLL'.

如果你想走那条路,你也可以从这些库选择中制作 MFC DLL 或 ATL DLL,但听起来你没有.

You can also make an MFC DLL or ATL DLL from those library choices if you want to go that route, but it sounds like you don't.

相关文章