首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DLL链接到DLL

将DLL链接到DLL
EN

Stack Overflow用户
提问于 2012-06-21 04:35:15
回答 2查看 3.7K关注 0票数 1

我正在将代码添加到具有多个DLL的Visual Studio 2010解决方案中。一些DLL依赖于其他DLL。

我想知道如何指定一个(现有的) DLL的lib文件应该输入到另一个(新的) DLL。

首先,如何指定应该在现有DLL项目中创建lib文件?

其次,如何指示新的DLL项目应该依赖于现有项目的lib文件?

代码编译得很好。我得到了一些未解决的外部问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 22:11:47

原来我忽略了源DLL项目(在项目创建向导中指定)上的"export symbols“设置。这将创建一个包含declspec定义的头文件,如下所示:

代码语言:javascript
复制
#ifdef TESTFILTERS_EXPORTS
#define TESTFILTERS_API __declspec(dllexport)
#else
#define TESTFILTERS_API __declspec(dllimport)
#endif

这是一个名为"TestFilters“的动态链接库项目。

对于要导出的类定义,必须在类的头文件中使用TESTFILTERS_API定义,如下所示:

代码语言:javascript
复制
class TESTFILTERS_API CTestFilters {...};

在至少一个类定义中出现declspec(dllexport)会导致库文件(即TestFilters.lib)被自动创建。

票数 1
EN

Stack Overflow用户

发布于 2012-06-21 04:54:15

项目属性中的

  1. :您必须在每个项目的属性中添加库引用--包括生成DLL的项目。

假设项目DLL_B使用DLL_A。在解决方案资源管理器中选择DLL_B,按Alt-Enter,转到“配置属性”“->链接器->输入”,将“DLL_A.lib添加到其他依赖项”。还要将..\Release添加到常规->附加库依赖项中(类似地,在调试模式下添加..\Debug )。确保在调试和发布版本中都对其进行了修改。

  • 在解决方案中:您需要使用户依赖于他们使用的库。

在“解决方案资源管理器”中选择您的解决方案,按Alt-Enter组合键,然后转到“通用属性”“->项目依赖项”。对于DLL_B项目,请检查“依赖于”窗格中的DLL_A。

这是基于VS2008的,但我相信在VS2010中应该是类似的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11127755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档