How do I build an import library (.lib) AND a DLL in Visual C++?(如何在 Visual C++ 中构建导入库 (.lib) 和 DLL?)
问题描述
我想要一个单独的 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.
这篇关于如何在 Visual C++ 中构建导入库 (.lib) 和 DLL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 Visual C++ 中构建导入库 (.lib) 和 DLL?
基础教程推荐
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 从 std::cin 读取密码 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01