首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在VS2008中构建DLL时没有遵循“在静态库中使用MFC”的设置?

在VS2008中构建DLL时没有遵循“在静态库中使用MFC”的设置的原因是因为在VS2008中,默认情况下,创建的DLL项目是使用动态链接库(Dynamic-Link Library)的方式,而不是静态链接库(Static-Link Library)。在动态链接库中使用MFC的设置是通过在项目属性中进行配置的。

静态链接库和动态链接库是两种不同的库文件形式。静态链接库在编译时会将库的代码和应用程序的代码一起链接成一个可执行文件,而动态链接库则是在运行时才会被加载到内存中。使用动态链接库的好处是可以减小可执行文件的大小,同时多个应用程序可以共享同一个动态链接库,减少了重复代码的冗余。

在VS2008中,如果需要在静态库中使用MFC,可以按照以下步骤进行设置:

  1. 打开DLL项目的属性对话框,选择“配置属性”->“常规”。
  2. 在“常规”选项卡中,将“配置类型”设置为“静态库(.lib)”。
  3. 在“常规”选项卡中,将“使用MFC”设置为“使用MFC的静态库”。
  4. 确认设置后,重新构建DLL项目。

这样设置后,就可以在静态库中使用MFC了。静态库中使用MFC的优势是可以将MFC的代码和资源直接编译到静态库中,方便在其他项目中使用。静态库适用于需要将代码和资源打包成一个独立的可执行文件的场景。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Linux】详解动静态制作和使用&&动静态系统配置步骤

二、动态静态制作和使用 2.1、静态制作和使用 先将我们.c文件或者是.cpp文件形成.o文件,指令为: gcc/g++ -c 要形成.o文件名 .c文件  假设在我当前目录下有...mymath.o (跟上.o文件名) 上面指令-rcr表示replace,c表示create,也就是说你要我形成这个如果原本没有,我就帮你形成一个新,如果有了那我就把你原来旧替换掉...(-L + 路径表示myc这个在哪个路径下) 2.2、动态制作和使用 fPIC:产生位置无关码,将.c或者.cpp形成.o文件,需要加上-fPIC。...但是,ubuntu系统下你会发现,动态使用静态链接方法我们动态系统还是找不到(此处特制ubuntu系统,其它系统可能可以正常运行),这时我们就只能将我们动态拷贝到系统usr/lib目录下...方法1:添加环境变量LD_LIBRARY_PATH搜索路径 LD_LIBRARY_PATH变量在你系统可能有也可能没有,如果没有自行导入就行。

47310

VS2008下VTK安装指南

5.8.0/bin 按 configure 按钮,cmake 软件会让你选择需要使用编译器,这里我们选vs2008,然后cmake会描所需要文件,停下来之后,我们就可以修改 cmake选项了。...很多人把 vtk 安装好了,却无法运行vtk mfc 混合编程例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on。...如果用静态编程,即off,应用程序可以独立运行,尺寸也比较大,如果用动态编程,即on,应用程序必须找到动态才能运行,但尺寸可以做得比较小。...建议选On, 我试过选OFF,所谓静态编译,但之后新建一个项目,还是会出现找不到文件问题。...要建立新项目,必须重新配置三大步,因为那三步都是Project setting里,新项目没有默认这些设置。 如果某个项目再提示缺什么lib或.h的话,再临时加上去就行了。 9.

1.4K30
  • 如何使用构建在 Redis 之上 BullMQ Node.js 实现一个消息队列。

    在这篇文章,我们将使用建立Redis之上BullMQNode.js实现一个消息队列。我们将实现两个消息队列。一个用于为特定订单添加退款任务。...成功完成退款任务后,我们将启动通知任务,通知用户退款已完成。对于通知任务,我们将使用另一个队列。...步骤1:设置项目创建一个新文件夹 "messaging_queue" 并通过 npm init 初始化项目,并添加依赖项。...成功完成退款任务,将通知任务添加到 notificationQueue。步骤6:Docker设置为了运行BullMQ代码,我们需要在本地计算机上运行一个Redis服务器。...因此,我们将使用Docker。确保您系统已安装Docker,并创建一个 docker-compose.yml 文件。

    64300

    c++DLL编程详解

    仓库发展史上经历了“无静态链接-动态链接时代。 静态链接与动态链接都是共享代码方式,如果采用静态链接,则无论你愿不愿意,lib指令都被直接包含在最终生成EXE文件中了。...静态链接和动态链接另外一个区别在于静态链接不能再包含其他动态链接或者静态,而在动态链接还可以再包含其他动态或静态链接。...非MFC DLL: 上面给出了以静态链接方式提供add函数接口方法,接下来看看怎样用动态链接实现一个同样功能add函数。...静态调用:这个方式要与静态调用方式区别开,是由编译系统完成对DLL加载和应用程序结束DLL 卸载。...当调用某DLL应用程序结束,若系统还有其它程序使用DLL,则Windows对DLL应用记录减1,直到所有使用DLL程序都结束才释放它。静态调用方式简单实用,但不如动态调用方式灵活。

    2.3K60

    bjam 参数

    还有一个非常需要注意地方,我一次编译时候遇见过很变态问题,由于安装了VS2008,所以我想用VC9来编译,结果VC9设置似乎与环境变量冲突,在打开命令行工具时候会提示:此时不应有:<此处为系统所有环境变量...Windows上,只有普通静态使用lib前缀;导入库和DLL使用。 · boost_regex 名称:所有boost名文件以boost_开头。...· -vc71 Toolset 标记:标识了构建所用toolset和版本。 · -mt Threading 标记:标识构建启用了多线程支持。不支持多线程没有-mt。...大多数unix平台上,.a是静态,.so是共享Windows上,.dll表示共享,.lib是静态或导入库。...当链接器处理静态,也会将涉及到obj文件defaultlib放在命令行库列表最后。

    21520

    Ogre1.7.2 + CEGUI0.7.5配置

    ,一种是直接使用官网SDK,这种配置方法比较简单;另一种是通过源代码构建方式,为了方便今后对源代码查看和修改,本次安装采用源代码构建方式配置),解压Ogre src 压缩文件 到指定目录,如我们这里使用为....bat(或对应其他版本),你将看到CEGUISamples.sln; 此处注意:为了下面的编译能成功,需要对VS2008需要目录进行配置,具体过程如下: 右键单击 我电脑—属性—高级—环境变量...(June 2010)\ (注意这里根据directx安装目录而定) ) 打开VS2008,选择菜单栏:工具—选项 弹出如下对话框:(请确保可执行文件这一项,DirectX执行路径配置上了,默认情况下安装完...DirectX此项会自动添加上,如果没有这里需要手动添加一下,如下所示: 同样, 包含文件 一项,配置如下一些路径: 同理, 文件 一项,配置如下: 然后到如下目录 (根据自己...最后我们要做就是通过代码测试一下我们前面那些配置是否正确,首先为了代码编写方便,我们还需要安装一个插件,大家知道我们创建MFC应用程序时候有个应用程序向导,可以通过简单配置生成很多基础代码,

    39630

    VS2015用C++创建MFC DLL动态「建议收藏」

    1 打开VS2015,新建MFC dll动态,如下图所示: 2 点击下一步,应用程序设置里选择带静态链接MFC规则,这个主要为了以静态形式生成MFC dll,便于动态可以移植到其它编程语言或者其它计算机系统里调用...MFC_dll.h这个文件,但我推荐你最好不要放在这个文件里,具体什么原因熟悉动态编写可以自行体会原因。...8 MFC_dll.def 定义函数显示导出: 代码如下: add_func @1 9 然后编译工程,即可成功生成mfc dll动态 10 生成了动态,那么如何把这个动态提供给别人用...我们知道C++静态只有.h文件和.lib文件,C++动态有有.h文件和.lib文件还有.dll文件,因此我们我们工程中找到这三个文件,复制出来就是一个完整mfc dll动态了。...工程源程序所在目录文件夹中找到我们程序中新建头文件mfcAPI.h,复制出来 Release目录下找到生成动态文件MFC_dll.dll文件和MFC_dll.lib文件,复制出来

    1.7K10

    技巧与工具02-MFC字符串相关

    此篇主要总结了Windows下MFC编程字符串相关一些知识,如CString, CStringList等使用....CString MFC下最好用字符串类应该就是CString了.CString是MFC一个类,包含了许多好用操作如 格式化,查找,计算长度等....要使用CString,需要在工程引用头文件:#include ,一般放到stdafx.h预编译头中. 另外需要在项目属性中选择"共享DLL使用MFC"....MSB8031 2 VS2008下非MFC工程使用CString类 3 CString 成员函数用法大全 4 CString转换为LPCSTR方法补充 5 CString Format函数 VS2013...一个小问题 写这篇总结时候,最后附录有十个链接,我本地localhost测试,这十个链接只能显示六个, 而且每次刷新出来页面还都不一样,看网页代码最后部分是乱码,改改markdown[]与()

    80220

    从0开始学习黑客编程--第一节.环境搭建2

    哦,说到工程项目设置了,上回把那个几千块软件下载了下来,也不知道大家体验过了没有,体验过也不知道删了没有,没删也不知道自己去研究了没有。。。反正我是不想讲这一节。。。 你问我为啥?...打开你腾讯大礼包。。。再举个简单例子,你要想生成东西能够各版本系统正常运行,不会报错说丢失文件无法启动,就得把dll静态方式写到文件里面,就是使用MT形式。 ?...我们要使用MFC的话就选择后面两种,其实这两种也比较好理解,静态就是直接生成执行文件时候把使用MFC对应内容一起生成到执行文件里面,而共享DLL使用MFC就需要系统自己带着对应MFCDLL。...好吧,我说明白一点,静态使用MFC,就好比老外给了你一本外国流行词大全(MFC),让你翻译时候可以直接把这个流行词大全里面的词写到你翻译出来书里,顺便在把他意思标注注释里面,这样无论看懂看不懂都能看懂...但是你看我这个大概说,表明实际上我已经有先见之明了,早就把坑给填上了。写错啥,不可能。 ? 为什么我说这个是个问题呢,,,因为我们没有安装供静态MFC编译VS配置文件。。。 ? ?

    38620

    利用键盘钩子捕捉linux键盘动作,利用键盘钩子捕获Windows键盘动作

    本程序为方便起见采用了标准静态连接MFC DLL。  键盘钩子程序示例  本示例程序用到全局钩子函数,程序分两部分:可执行程序KeyKook和动态连接LaunchDLL。...编译完成便可得到运行时所需键盘钩子动态连接和进行静态链接用到lib。  下面开始编写调用此动态连接主程序,并实现最后集成。...”  这样我们就可以象使用本工程内 函数一样使用动态连接LaunchDLL.dll所有导出函数了。...本程序为方便起见采用了标准静态连接MFC DLL。  键盘钩子程序示例  本示例程序用到全局钩子函数,程序分两部分:可执行程序KeyKook和动态连接LaunchDLL。...”  这样我们就可以象使用本工程内 函数一样使用动态连接LaunchDLL.dll所有导出函数了。

    2.7K10

    锁定屏幕相关知识「建议收藏」

    VC6 中有三种形式 MFC DLLDLL 可以使用和继承已有的 MFC 类 ) 可供选择,即 Regular statically linked to MFC DLL (标准静态链接...第一种 DLL 特点是,在编译使用 MFC 代码加入到 DLL ,因此,使用该程序时不需要其他 MFC 动态链接类存在,但占用磁盘空间比较大;第二种 DLL 特点是,在运行时,动态链接到...MFC,因此减少了空间占用,但是在运行时却依赖于 MFC 动态链接类;这两种 DLL 既可以被 MFC 程序使用也可以被 Win32 程序使用。...第三 DLL 特点类似于第二种,做为 MFC扩展,只能被 MFC 程序使用。...(3) 编辑对话框,删除其中原有的两个按钮,加入静态文本框和编辑框,用鼠标右键点击静态文本框,弹出菜单中选择“属性”,设置其标题为“鼠标所在窗口标题”; (4) Mouse.h

    1.2K11

    钩子原理及实例:实现键盘钩子截获密码

    VC6MFC DLL分类及特点 VC6有三种形式MFC DLLDLL可以使用和继承已有的MFC类)可供选择,即Regular statically linked to MFC...DLL(标准静态链接MFC DLL)和Regular using the shared MFC DLL(标准动态链接MFC DLL)以及Extension MFC DLL(扩展MFC DLL)。...第一种DLL特点是,在编译使用MFC代码加入到DLL,因此,使用该程序时不需要其他MFC动态链接类存在,但占用磁盘空间比较大;第二种DLL特点是,在运行时,动态链接到MFC,因此减少了空间占用...,但是在运行时却依赖于MFC动态链接类;这两种DLL既可以被MFC程序使用也可以被Win32程序使用。...第三种DLL特点类似于第二种,做为MFC扩展,只能被MFC程序使用。 实例 下面我们通过安装鼠标钩子。和键盘钩子还截获输入密码,并可查看*密码,实现所有进程输入框输入按键获取。

    2K21

    编译boost工程

    我仔细C:\boost_1_64_0目录下搜索了一下,根本就没有libboost_regex-vc140-mt-sgd-1_64.lib这个文件,那咋办,找教程编译呗 编译boost工程是一个叫...查看boost包含命令是bjam --show-libraries。 stagedir/prefix:stage使用stagedir,install使用prefix,表示编译生成文件路径。...link:生成动态链接/静态链接。生成动态链接使用shared方式,生成静态链接使用static方式。...一般boost可能都是以static方式编译,因为最终发布程序带着boostdll感觉会比较累赘。 runtime-link:动态/静态链接C/C++运行时。...一般都是程序debug版本对应debug版本,所以两个都编译。 编译日志,由于配置参数原因只生成了静态lib,没有dll

    22230

    VS2010编写动态链接DLL和单元测试,转让DLL测试正确性

    大家好,又见面了,我是全栈君 本文将创建一个简单动态-link,谱写控制台应用程序使用该动态链接,该动态链接为“JAVA调用动态链接DLL之JNative学习”中使用DLL,仅仅是项目及文件名不同...在出现Win32 应用程序向导概述对话框中点击下一步。 5、应用程序设置,选择应用程序类型下DLL。 6、勾选附加选项下空项目。 7、单击完毕创建项目。...在出现Win32 应用程序向导概述对话框中点击下一步。 5、应用程序设置。选择应用程序类型下控制台应用程序。 6、单击完毕创建项目。...用Depends工具打开它 眼下编译版本号对MSVCR100.DLL还有依赖。这样拷贝到其他没有安装VS2010电脑上是用不了项目上单击鼠标右键,属性: 左側配置属性中选择常规。...右側找到MFC使用,选择静态使用MFC 这里是改动MFC使用

    1.3K20
    领券