请问:如果把MFC exe修改成MFC(dll)大致需要多少工作量,还要注意些什么? [问题点数:100分,结帖人claider]

Bbs2
本版专家分:401
结帖率 98.69%
Blank
黄花 2004年12月 扩充话题大版内专家分月排行榜第二
Blank
蓝花 2005年2月 VC/MFC大版内专家分月排行榜第三
Bbs7
本版专家分:14730
Bbs4
本版专家分:1529
Bbs4
本版专家分:1772
Bbs2
本版专家分:401
Bbs11
本版专家分:265329
版主
Blank
进士 2006年 总版技术专家分年内排行榜第四
Blank
金牌 2006年4月 总版技术专家分月排行榜第一
Blank
铜牌 2006年3月 总版技术专家分月排行榜第三
Blank
微软MVP 2014年1月 荣获微软MVP称号
2009年1月 荣获微软MVP称号
2013年1月 荣获微软MVP称号
2012年1月 荣获微软MVP称号
2010年1月 荣获微软MVP称号
2011年1月 荣获微软MVP称号
2006年1月 荣获微软MVP称号
2005年1月 荣获微软MVP称号
2008年1月 荣获微软MVP称号
2007年1月 荣获微软MVP称号
2004年1月 荣获微软MVP称号
Bbs2
本版专家分:401
Bbs7
本版专家分:10858
Bbs12
本版专家分:432412
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
铜牌 2009年6月 总版技术专家分月排行榜第三
2009年2月 总版技术专家分月排行榜第三
2005年4月 总版技术专家分月排行榜第三
2005年1月 总版技术专家分月排行榜第三
Bbs2
本版专家分:401
Bbs3
本版专家分:776
Bbs2
本版专家分:401
其他相关推荐
C++之MFC从exe应用转成dll简洁快速方法
最开始都是使用从exe或者dll单独开发,最近遇到一个项目,搞了好久,代码量和业务量很大,忽然需要将之前的exe转换为dll,来被别的模块调用,瞬间悲催,从网上找了些方法,写的都是很概括,没有什么太大帮助,后来钻研了一天终于搞定,下面把心得记录一下: 1.找到exe项目中除了项目主文件(*.h/*.cpp)以外的*.h/*.cpp 2.新建一个dll的工程 3.将1中的文件都放到2中去 4
MFC工程exe转换成dll
/*******************************************************************************/ .dsp 工程文件,文本格式,不可丢失或损坏        .dsw 工作区文件,丢失或损坏时,可点击.dsp文件打开工程,.dsw文件自动重建    .clw ClassWizard信息文件,ini格式,ClassWizard出
如何将MFC生成的exe转换为DLL
最近因为项目需要需要将之前生成的exe在另一个大的项目中调用,因此需要将当前的项目转化为dll。     之前虽然经常使用dll和Lib,,但却没有亲身尝试生成,对于格式和流程不是很清楚,借机学习了一下。     参考和查阅了很多帖子,比如     http://blog.csdn.net/yanbdsky/article/details/4587813      htt
MFC生成的exe文件缺失dll问题
操作环境:VS2010+win7 最近用mfc写了一个小工具,然后在自己的机器上跑的一点问题也没有,到了其他人的机器上就提示缺失各种dll文件。 在分析了这个问题以后。发现了导致这个问题的原因,是生成exe文件时是使用的Debug(调试)模式,而不是Release(发布)模式。其实,你会发现Debug模式下生成的exe文件很小,然后Release模式下就会大很多,其原因就是Release模式下自
MFC在共享DLL中使用转换为静态库中使用的一些问题
在项目的配置属性中配置“MFC的使用”时,将会有两个选项:“在共享 DLL中使用  MFC”和“静态库中使用  MFC”。     “在共享DLL中使用MFC”指的是在打包时一些MFC的DLL的内容没有被硬编译到exe文件中,所以exe文件会较小,但是在运行时要求运行的系统环境中要有相关的DLL文件。     “在静态库中使用MFC”是将DLL对应的lib静态库中的相关代码硬编码到ex
如何将.exe改为.dll
事出缘由:我手下一个兵居然将我要求开发成控件形式的程序开发成form,导致最后集成时没找到dll,只有.exe文件,但是我那个气啊,后来自己把他的代码要过来,将它改成dll。步骤如下:第一步:在同一个解决方案中新建一个form,取名为test,并设置为启动项目;第二步:将原来的项目生成的.exe文件删除,在bin/debug和object/debug下都有;第三步:将原来项目的fo
MFC动态链接库调用详解
MFC动态链接库的调用,有好多种方式,这里只介绍一种简单的调用的方式,只需要把动态链接库编译后的.dll文件放到调用界面的Debug下面。再在界面需要调用动态链接库里添加相关函数就行了。找了好多资料,发现没有详细的介绍,下面就是从动态链接库建立开始,一点点详细的介绍。首先是,动态链接库的建立。我们这里讲的是MFC的标准库的建立。用的是vs2010。 我们建立一个名为TestDLL的动态链接库。
dllexe方法 适用win32下的开发 C++
exedll的方法很容易度娘到,dllexe的网上比较零散,最近在做一个项目xu
MFC打包exe
1、Release版的exe文件链接的是标准的MFC DLL,比如MFC42.dll。这些DLL在安装Windows的时候,就会装到系统中。因此,这样的exe在没安装Visual C++ 6.0 的机器上也能运行。而Debug版不能,除非使用静态链接 2、生成release版的步骤: “工程”——“配置”——“常规”——“使用MFC作为静态链接库”。
VS2008下把EXE程序转换成DLL
一个MFC项目进行到一半,界面都设计好了,领导突然说,要做成DLL的,NND,一句话,够折腾人的,界面重做的话,之前用2天,现在又需要2天,这个时间谁给?到时候项目不能按时完成,又会怪你做事不快,又会质问你,你之前工作没积累吗?这么简单的事情,要做这么久?我感觉有句话说的挺好的,没有教不会的学生,只有不会教的老师,或者说老师教的方法不对;换句话说,没有不会打仗的士兵,只有不会指挥的军官。
一个简单的Win32工程改成MFC工程
对于一个MFC应用程序来说,只有CWinApp的派生对象是必不可少的,其它类均可视情况进行取舍。 新建一个Win32应用程序的空项目,新建TestMFC.cpp文件 #pragma once #include class TestApp:public CWinApp { public: virtual BOOL InitInstance() { MessageBox(NULL,L"
如何将MFC资源文件打包成dll
将MFC资源文件打包成dll        项目中经常会遇到主程序的资源文件是在一个dll中,就是把资源文件部分任务提取出来,比如添加各种语言的字符串,各种图标,各种版本的Dlg或者Menu等等。改好之后,只需要build下就可以生成包含各种资源文件的dll,主程序只需要去调用这个dll即可。         在软件工程中,很多项目都要这样做,因为资源和逻辑分离,这样就可以做到低耦合。
VC编程DLL通知应用程序exe通信(使用自定义消息实现)
源文件下载: 1. 用VC创建两个工程,一个工程是DLL的(基于使用MFC的动态链接库的),假设名字为MFC_DLL;另一个是EXE的(基于MFC的应用程序),设工程名为MFC_EXE; 2. MFC_DLL实现了两个导出函数: //导出函数 WIN32DLL_API void Start(HWND hWnd); WIN32DLL_API void End(); 第一个导出函数Start的窗
MFC项目封装成DLL
1.准备:①已经测试好的MFC项目解决方案(WinForm1);             ②新建一个MFC的DLL解决方案(WinDLL);             ③新建一个MFC对话框工程(DlgTest); 2.复制MFC项目目录下(.Cpp、.H、.rc、res等)到DLL项目目录下,其中需要修改rc名字为DLL项目名,(.rc是存储MFC资源的文件,res文件夹一般存储需要添加的图片之类...
VC释放资源文件DLL,EXE等。。。
/** @Name: ReleaseResFile @Brief 释放资源文件 @Param: WORD wResID 资源ID @Param: LPCTSTR szResType 资源类型 @Param: LPCTSTR szFileName 释放后的文件名称 @Return: 成功TRUE,释放FALSE */ BOOL ReleaseResFile(WOR
VS2010 MFC exe独立系统环境运行
如何让一个VS 生成的 exe 在没有安装VS 以及 依赖项dll 的电脑上运行,尝试了一下,将中间遇到的问题记录一下。 1. 在vs里面编译运行可以,但是点击Debug里面的.exe却显示如下问题: 程序目录下已经添加此dll文件,一般情况下,我们会把程序中调用到的dll 文件放于.exe同一目录下。 显示为dll文件问题,后发现为路径问题,我的.exe文件 路径为:工程目录/x64/
MFC多个dll同时操作时导致资源出错问题
在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题。 出现这样的Bug,一时无从下手。 报错位置在核心代码中dlgcore.cpp。 [cpp] view plaincopy BOOL AFXAPI _AfxCheckDialogTemplate(LPCTSTR lpszResource, BOOL bInvisibleCh
关于MFC的Debug版和Release版解析
在做MFC编程的时候,我们会先Debug版编译调试之后,再进行Release版编译发布,有些可能刚开始做MFC编程的人不明白Debug版跟Release有什么差别,Debug从字面意义就是调试的意思,Debug版的属性配置是针对调试程序的代码没有经过太多的优化是为了让开发者方便调试程序,而Release版是发布版,也就是客户最终使用的版本,这时候Release版的属性配置是针对发布软件的,代码经过
MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC
前言我们在使用Microsoft Visual Studio软件(也就是我们常常说的VS)时,其中项目属性中有一项叫做“MFC的使用”,里面包含有不同的设置,会影响我们所编写的程序的使用,今天我就遇到了这个情况,我们一起来总结一下,避免犯下相同的错误。内容昨天写了一个小程序,使用的是MFC应用程序的工程,工具的版本为VS2013,工程参数都是默认的,其中有一项设置叫做“MFC的使用”,默认设置是“在
vc设置程序版本, 获取程序版本号
VC 发布程序时设置版本信息       在windwos资源管理器中,可以查看exedll文件的版本信息,那么在使用vc生成exedll时如何设置版本信息呢,其实非常简单,只要修改资源中的VS_VERSION_INFO中的相关字段即可。这样,在对程序进行了修改后,可以生成新的版本,就不用依靠文件的日期来判断是哪个版本的了。   //--------------------------
MFC DLL的生成和调用实例
MFC DLL的生成和调用实例。
VS2015 MFC 之 打包部署
首先打开项目工程,将项目重新生成,并保证没有任何bug。在解决方案资源管理器中,选择解决方案,右击—添加—新建项目—安装和部署: 双击【InstallShield Limited Edition】,如果没有安装工具,会跳转到下载页面。下载和安装即可。    链接打开后信息如下: 填写信息并提交后,界面自动跳转,会根据提交内容,自动生成注册码及下载链
将DLL项目转换为exe可执行程序
设置1: 设置2:
MFC如和将类封装到DLL以及调用
*1、先用mfc向导生成静态dll文件。 *2、编辑增加类; *3、生成dll文件和lib文件; *4、将生成的dll和lib,和类的头文件复制到需要引用的文*件exe下; */ //导出dll的头文件myClass.h #define DLLimport __declspec(dllimport) #define DLLexprot __declspec(dllexport)
MFC DLL和Win32 DLL有什么区别?
Dll
MFC所依赖的动态库--MFC是如何创建出来的
1.Dependency Walker的第一道揭秘 在MFC中我们写过很多静态库和动态库。这些dll都依赖于MFC;然后我们又交给别人使用,使得它们被依赖。 细想一下,就可能会发现其中的不平衡。我们生成的非组件dll,要交给别人使用,必须提供h头、lib库和dll库文件;可是我们使用MFC的dll时,好像什么也没有设置,MFC不请自来的加入到我们的程序中。虽然知道这个世界,每个人其实并
MFC之暴力破解2
大约一年半载以前,我写了篇《MFC之暴力破解》博文,当时主要的目的是纯技术上的兴趣,刚好拿了一个叫SIMCAP的软件来练手,在接下来的时间里,没想到有很多人问我有没有破解最新的版本,主要是没有时间弄这个哦。   上个周,“等待花开MM”也来询问这件事,哎,看来对这个软件的免费版本需求还是有的,木有办法,就牺牲一个国庆节咯,把SIMCA-13.0 Demo版本给破解了。(感谢“等待花开MM”提供该
三种DLL(Win32DLL,MFC常规DLL和MFC拓展DLL)的简单学习总结
学习了三种动态链接库的基本知识,分别是Win32DLL,MFC常规DLL和MFC拓展DLL。     Win32DLL使用的是Win32的API实现的,只能导出函数,能被各种应用程序调用,适用范围最广。     MFC常规DLL是适用MFC创建的,就像MFC程序跟Win32程序的关系一样,MFC常规DLL和Win32DLL的关系也是如此。它使用MFC的机制,只能导出标准C函数。如此,它
MFC程序动态链接库缺失的解决方法
VS2010编写的MFC程序在别人电脑上不可运行的解决方法
纯虚函数接口如何定义?使用时应注意什么
★参考资料★ http://www.ok2002.com/cc/cc/v.asp?r=a2273562170518 //C++ 纯虚函数接口如何定义?使用时应注意什么? /*-- 定义纯虚函数接口:virtual void f()=0; //只是提供接口,实现留给继承类 使用时应注意:子类必须要实现该函数 --*/ #include using namespace std; clas
如何利用MFC编写的.exe调用C#编写的dll动态库
如何利用MFC编写的.exe调用C#编写的dll动态库     由于项目的需要,将C#编写的dll动态库运用到MFC编写的.exe程序中,具体运用步骤如下所示: 一、使用/clr方式来编译MFC文件,具体操作主要是更改MFC所在的项目属性:     1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。     2、展开“配置属性”旁边的节
MFC中如何从Unicode到多字节的转换
std::string cStringToString(const CString& src, UINT codepage = CP_UTF8) { std::string dst; if (src.IsEmpty()) { dst.clear(); return ""; } int length = ::WideCharT
VC++中把窗体封装到dll中并调用
原文地址::http://wenku.baidu.com/link?url=LE3ktwKCW1IS09hMebfloHitGGPSHt4I7s6J3Dx0q84_3xeQlZwucYuwGrO-l8y9F8soojjs_mzyTOxgVboMg3asMcljOAigdiRCITdmv1C 在DLL中使用资源 现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个
MFC DLL资源动态切换
在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题。 出现这样的Bug,一时无从下手。 报错位置在核心代码中dlgcore.cpp。 BOOL AFXAPI _AfxCheckDialogTemplate(LPCTSTR lpszResource, BOOL bInvisibleChild) { ASSERT(lpszResource != NULL); HINSTANCE h
ATL--创建简单的ATL之dll工程,添加类和类的接口并在MFC中调用
开发环境 Windows Server 2012  VS2010 Sp1 番茄助手 创建ATL简单dll工程 1、打开VS2010,新建ATL COM 项目,步骤:“文件” “新建” “项目”,选择“Visual C++” “ATL 项目” ,填写“名称” DemoATL “确定”。 接下来,下一步 接下来,下一步,ATL 项目向导,勾选 【支持COM+ 1.0】和【
在静态库下使用MFC和共享DLL下使用MFC 这两种情况 opencv的配置,以及配置opencv配置中容易出现的问题
opencv环境的配置,在静态库下怎么配置opencv,配置中常出现的一些问题
MFC静态加载dll和动态加载dll示例
一、静态加载DLL  函数的定义和使用方法: 第一步:    运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)。 第二步:    在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展DLL(MFC Extension DLL (using shared MFC DLL),点击FINISH生成
MFC加载纯资源DLL
不同语言的资源放到不同的DLL中,在运行时加载特定语言的DLL。 一、制作纯资源DLL 新建Win32工程,选择动态链接库。 在工程选项里,链接器 -> 高级 -> 无入口程序 = 是/NOENTRY 然后在资源里面添加想要的各种资源。 最后添加DLL入口程序 #include extern "C" BOOL WINAPI DllMain( HINSTANCE hIns
VC之使用MFC作为共享的DLL和作为静态链接库区别
使用MFC作为共享的DLL:打包时MFC的DLL的内容没有被包含在EXE文件中,EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 作为静态链接库:打包时MFC的DLL的内容被包含在EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行。 修改:工程-〉设置 -〉常规
vs2010生成的exe程序在运行时,提示计算机丢失mfc100d.dll文件
vs2010开发的exe程序在别的电脑运行时提示,这个问题是因为运行程序的电脑在system32这个文件夹下没有mfc100ud.dll这个文件,解决办法如下: 1、下载一个mfc100ud.dll,然后随同你的.exe程序一起发布; 2、需要mfc100ud.dll,说明你发布的exe程序是debug版本的,在配置管理器中选择是release重新生成方案,之后在工程的文件夹下生成releas
人人都是产品经理——写给产品新人
作者以分享经历与体会为出发点,以朋友间聊聊如何做产品的语气,将自己数年产品工作过程中学到的思维方法与做事方式,及其它们对自己的帮助,系统性地梳理为用户、需求、项目、团队、战略、修养几大话题,完整而生动地回答了我们为什么而做、在做什么事,解决什么人的什么问题、何时,和谁一起做、需要什么能力等人人都要面对的核心问题。《人人都是产品经理写给产品新人》面向1到3岁的产品经理,既有知识与方法,也有流程与实战,更有感悟与思考,适合刚入门的产品经理、产品规划师、需求分析师,以及用户体验、市场运营、技术部门的朋友,特别是互联网、软件行业的上述人群,也同样适合对做产品感兴趣的学生。
mfc程序打包后在其他电脑上安装缺少dll文件解决办法
1、缺少文件 mfc100d.dll msvcp100d.dll msvcr100d.dll 2、两种解决办法; 从发布打包程序电脑上c盘拷贝这三个文件,放到安装电脑上c盘 如果是64位系统,则从C:\Windows\SysWOW64中拷贝,继续放置到C:\Windows\SysWOW64文件夹中 如果是32为系统,则拷贝放置路径为C:\Windows\System32 打包的时候把...
MFC 动态链接库的生成调用。
1.新建MFC DLL程序。 2.在项目中添加.CPP文件 名字随意。 我的是txt 在txt.cpp中写入 extern "C" __declspec(dllexport) void button1(void) { 点击按钮要做的事。 }3.右击txt.cpp点编译,编译成功就行。 4.在自己的DLL项目Debug文件夹中找到TxtDll.lib和TxtDll.dll。复制粘贴到 新的对
MFC应用程序图标修改后exe文件没有立即生效问题
MFC应用程序图标修改后exe文件没有立即生效问题
Windows/MFC_dll生成文件___浅谈def文件(用于生成dll)
def文件格式(DLL导出)   2009-12-03 21:37:41|  分类: C++ |举报 |字号 订阅 今天接触了def文件,在客户端工程里有不少def文件,有关dll导出的今天就花时间看了看,以前包括现在自己在使用dll的时候很少用到dll一个强大功能,就是跨语言,用vb做界面调用vc写的dll各取所长。以前没碰到过def这个文件,就上网看了看,看完后明白了大概的作用
共享MFC DLL的规则DLL 、带静态链接MFC的规则DLL和MFC扩展DLL区别
言:在编写MFC程序的时候,通常需要编写dll库以供其他程序调用。关于MFC dll的相关知识很多很杂,这里特酷吧结合自己学习中遇到的问题专门整理了一些MFC dll的基础知识。本部分共上下两篇文章,本文为上篇,MFC DLL应用程序类型分为以下三种: (1)使用共享MFC DLL的规则DLL (2)带静态链接MFC的规则DLL (3)MFC扩展DLL 下面重点解释一下这些DLL的含义区别
MFC应用程序 变身成 windows服务程序
非常简单实现MFC应用程序到windows服务程序的转变,简单的就一句话“奥特曼变身”
关于使用MFC DLL时提示内存泄漏问题
这两天按照之前的习惯,在开发过程中使用调试模式运行的时候,发现有意料之外的内存泄漏问题。经过不断的核查定位,最终发现是在使用FreeLibrary函数卸载自己写的一个MFC DLL之后报的内存泄漏。然后又Review了好几遍,十分确定自己的代码没有问题!然后注释了一对代码,发现就算只用了LoadLibrary和FreeLibrary也一样会报内存泄漏。然后找了一下调用MFC DLL内存泄漏相关问题
MFC动态调用dll到指定的进程中(win7系统vs2013环境下)
在这里将写一个简单的MFC程序,此MFC将把一个dll插入到一个目标进程(也叫靶子)中。 原理很简单,就是通过目标(靶子)窗口的类名,找到这个目标的进程,再动态地将dll插入其中。 要实现此效果也并不复杂,就算是刚接触vc的也可以完成此程序。(比较复杂的是插入代码的原理) 下面将“找到目标进程”、“插入dll到目标进程中”在MFC程序启动按钮的点击事件中完成。 其中WCHAR czClassName[] = L"TXGuiFoundation";为类名,可以使用Spy4Win.exe软件获取 WCHA
如何在MFC中使用动态链接库
1.隐式链接加载动态链接库如果有XXX.h ,XXX.lib,XXX.dll,这样就可以隐式链接加载了。在所要引用的.cpp文件中加入#include     “XXX.h”   //包含静态链接库的头文件#pragma  comment(lib,"XXX")   //隐式调用库文件这样就可以使用dll中封装的函数了。其中语句“#pragma comment(lib,"XX
MFC常规DLL的创建与使用实例
 MFC常规DLL的创建与使用实例 22.2节中介绍了非MFC DLL的创建和使用实例,与之不同的是,本节介绍内部使用MFC,但是提供的访问接口不支持DLL而是标准的C接口的常规DLL。除了介绍基本概念和创建方法外,本节还介绍MFC常规DLL的创建实例和调用方法。 22.3.1  基本概念 MFC常规DLL,从字面上理解有两点。一是MFC的,这是指DLL内部使用MFC
VC2010编译的MFC程序需要的dll
VC2010编译的MFC程序(动态链接到Dll),复制到其他计算机上的时候,可能需要以下dll的支持: mfc100u.dll,msvcp100.dll,msvcr100.dll 该文件包含了以上三个Dll。
用VS编译出不依赖VC运行库的可独立运行的程序
使用vs2010编译出来的EXE应用程序在别的机子上运行时会提示找不到MSVCR100.dll,这该怎么解决呢……   使用vs2010编译出来的EXE应用程序在别的机子上运行时会提示找不到MSVCR100.dll,这该怎么解决呢?   一、在运行程序的计算机上安装vc2010运行库(很好的办法呀)   说明:这种方法需要用户自己去安装,一般适用于大型程序,小
MFC扩展DLL导出对话框类的实现---VS2005
基于深入浅出讲的比较泛,根据找到的网上的资料的修改,因为真正实践发现不少资料有小bug。总结出下面两个例子: Demo 1 点击较多的这篇MFC扩展DLL导出对话框类,做了少量修改 【在网上看了一下,关于“dll导出对话框类”的搜索,基本上都是2个人的帖子,大家各种转载,创建的类一个名字叫CDlgDog,另一个叫GameDlg。纵观天下大事,合久必分分久必合,blablabla……】 创建类D
关于MFC中DLL的制作和调用
在做MFC程序的时候用到了DLL,所以查找总结了一下。 一. 制作DLL流程 为什么都没有段落符号与标号。。。 先创建DLL工程、类,编写DLL函数;编译链接产生DLL文件(普通工程产生的EXE文件,DLL产生的是DLL文件)。 此时DLL文件还不能调用。应用程序要想访问某个DLL中的函数,那么该函数必须是已经被导出的函数。查看DLL中有哪些导出函数可用命令行工具:Dumpbin。命令如下
MFC中调用C# DLL库
VS2013 1、项目->属性->配置属性->公共语言运行时支持->公共语言运行时支持(/clr) 2、在代码中引用DLL #using "API.dll"; 或者项目->属性->通用属性->引用->添加新引用->浏览加入DLL。 3、代码中引用 局部变量 using namespace API;//头文件加入命名空间 API::API_C
在VS2015中用C++创建MFC规则动态库DLL
在VS2015中用C++创建MFC规则动态库DLL
MFC 写五子棋用到的知识点
MFC应用程序中的基于单文档模式的结构框架如下: 在做五子棋的时候只用到了View类和CMainFrame类(貌似大部分mfc应用程序也就用这两个类),View类主要用来画棋谱和棋子,用于客户区;CMainFrame类见名思意主要是用来控制框架的,比如 窗口的大小,状态栏窗格的显示等等... 接下来是画棋子,新建两个Bitmap资源用来显示棋子,除了棋盘上要显示的棋子资源外,还有光标(
use of MFC 工程属性
我的主MFC工程中调用了两个lib库:lib1与lib2,这两个lib库在编译生成的时候的配置有些差异,一个lib(比如lib1)的USE of MFC配置选择的是Use MFC in a Static Library,另一个(lib2)选择的是Use MFC in a Shared DLL,主工程的这个配置无论选择哪一个都会出现很多重定义的错误(都是MFC库中的函数重定义 如precreatew
MFC exe替换大、中、小图标方法
简单方法替换MFC原图标,并使其在大中小三种模式下都能清晰显示
MFC DLL 与 Delphi DLL的互相调用要注意的问题
MFC DLL 与 Delphi DLL的互相调用要注意的问题
VS2013中 勾选在共享DLL中使用MFC 报错 系统找不到指定文件 参考解决办法
找了一个MFC工程,首次编译,黑窗口一闪而过,在项目属性,项目默认值-》MFC的使用-》在共享DLL中使用MFC,F5后,报错:找不到指定文件,以及无法解析的外部符号错误49个,请教同事,同学,无果。 重新安装VS2013 后还是老样子,卸载2013 安装2015故障更严重,后来又重新卸载和安装VS2013 VS2015 很多次。折腾了一整天,简直没办法。后来决定重装系统,但是。。。 把Deb
如何将程序的执行文件和静态加载动态库放在不同的目录
一般windows程序的exe和dll需要放在同一个目录,静态加载才不会报错,否则需要修改path环境变量,将所有没有和exe放在同一目录的dll的路径加在path环境变量中。 有没有一种方法不去手动修改path环境变量并且可以将exe和dll随心所欲的改变路径呢?我没有发现,但是我们可以将修改环境变量这件事情交给我们的程序本身来处理,那么从现象上来看就是我们不需要修改环境变量而可以将dll从e
MFC到底还要不要继续学习
MFC到底还要不要继续学习 完全没想到10多年后还有人纠结要不要学MFC,我花点时间给新人们一个总结。 第1种观点 学习完MFC,你会更理解编程的思想,再学别的语言就更快了。 话说小白要去美国学技术,大黑劝他说:“你为什么不先到朝鲜,然后从朝鲜再飞到美国”,小白茫然不解。大黑接着说“你想你先到朝鲜再去美国,不是比从中国直接去美国近吗?”小白恍然大悟,“并且你到了朝鲜,那里有金太阳的照
MFC——调用C#生成的DLL文件(动态库)
最近MFC的项目需要将PC端与PLC端进行网口连接,这边也是已经拥有了C#的动态库能使两者进行连接,但是 该怎么使用,怎么调用这个C#生成的.DLL文件,却从来没试过。于是在网上找了很多资料,发现都不是很全面, 走了不少弯路,最后配置了以下属性之后总算是成功了。 (1)打开工程属性——配置属性——常规      将右侧界面中的MFC的使用一栏改为:在共享DLL中使用MFC
MFC导出对话框类(带资源)
如果mfc想导出一个功能完整的对话框(类似于系统自带的打开文件),有时候会创建失败,或者在DoDataExchange函数内断言中断,提示找不到某控件资源。这是因为dll加载后,mfc把resourcehandle设置为exe的句柄,创建dll对话框时搜索的也是exe的资源,当然找不到了。起始解决的方法非常简单,加入你的dll名称为dlg.dll。只要在对话框创建的位置添加如下代码。void Cra
VS2015在共享 DLL 中使用 MFC 发布细节 同时支持XP
1.项目属性平台工具集选 2.到vs2015安装目录下负责依赖的dll,因为新版vc启用了新的c/c++运行时,xp版本没有发布对应的补丁,所以需要自己复制进去安装目录。 这里要兼容32位故只需要x86的dll, 我的机器具体如下: 转到 F:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote D
如何将VS向导生成的DLL工程切换到EXE配置
如何将VS向导生成的DLL工程切换到EXE配置 问题现象 操作步骤 问题现象调试一个大的工程时手动对编写的代码进行单元测试,已经在工程属性对话框中将“配置”生成模式从“DLL”切换到“应用程序(即EXE)”配置。 具体如下图操作。但是编译时仍然提示如下错误:1>Creating library D:\...\LAC_IO.lib and object D:\...\LAC_IO.exp 1>MSV
VS2010 MFC 动态编译以静态编译发布
VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法 解决方法: 1.将这些dll打包,和应用程序一起发布; 2.采用MFC静态编译;  使用VS2010编译的程序在windows xp中运行时  经常会出现找不到  相关的DLL文件,我们可以使用静态编译的方法把这些运 行依赖文件打包到*.exe中来,以减少对环境的依
DLL导出函数和类
DLL导出数据 函数 类
win32转换为MFC软件工程
//MFC架构组成 //1.有CWinApp的派生类 //2.在全局区有定义派生类的对象 //3.在派生类中有virtual BOOL InitInstance()重写 //4.今后MFC软件工程就以派生类对象app中的InitInstance作为主函数 //另外,连接MFC的平台使用MFC静态链接库,或共享DLL都可以。 项目->属性->配置属性->常规->MFC的使用 //提前要删
如何查看一个运行的exe执行程序需要有哪些DLL动态链接库
如何查看一个运行的exe执行程序需要有哪些DLL动态链接库第一步:打开“360安全卫士”软件笔者的360安全卫士的版本是:8.8第二步:打开“功能大全”菜单第三步:运行“360任务管理器”。 第四步:用鼠标选中查看需要分析的exe执行程序。第五步:鼠标点击“显示进程加载的模块”第六步:显示正在运行的exe所包含的动态链接库DLL以及引用的库文件所在的位置 【笔者注】笔者在VS2008分析一段代码,
在VC中创建DLL文件的方法步骤--DLL文件与exe文件的区别
原文地址:http://dev.yesky.com/475/7667475.shtml 今天教大家在VC中创建DLL文件的方法步骤,一起来学习一下,并不是很难的,相信聪明的你一看就会。   一.Win32动态链接库   1.制作的步骤:   (1)新建WIN32 Dynamic-link Library工程,工程名为MyDll,选择A simple DLL project类型。
【软件后门】资源(dll、ocx、exe)语言切换(汉化)、图标更改
1、资源(dll、ocx、exe)语言切换(汉化) 推荐使用工具eXeScope.exe 2、图标修改 推荐使用工具ResHacker 3.5.exe 3、区域语言修改 推荐使用工具UltraEdit  中文(中国) 0x0804 0x04B0 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 6C
把dll打包到程序中并在执行时释放
把dll作为资源放到程序中,运行时释放出来,
控制台应用程序调用MFC DLL产生的对话框,解决对话框dlg.DoModal报错问题
用MFC dll定义对话框与MFC应用程序的步骤相同(会建对话框的掠过下面2步) 1.在资源浏览器里面编辑对话框,并用类关联之,如名为CMyDialog 2.显示对话框的方法:CMyDialog dlg; dlg.DoModal();   3. 定义接口,显示对话框 _declspec(dllexport) void FUNCSHOW() { // 这个宏非常重要,没有就会报错 AFX
多个DLL(exe)之间通过指针或者引用传递STL对象
在多个DLL(exe)之间通过指针或者引用传递STL对象时会发现操作失败现象。MSDN上给出了完整的解决方法。在开发应用程序的过程中需要认真对待。         现象:         在不同的DLL或EXE中通过指针或引用操作另一个DLL或EXE中的STL对象时,会遇到严重的程序错误,包括数据错乱或丢失。         原因:         标准C++库的多数类直接或间接的使用了静态数据成
MFC下DLL编程(图解)一定要认真看(包含了很多东西)
转载至https://www.cnblogs.com/19910101zj/p/4611695.html DLL(Dynamic Link Library,动态链接库)是微软公司为Windows和OS/2操作系统设计一种供应用程序在运行时调用的共享函数库。DLL是应用程序的一种扩展,也是软件共享和重用的传统方法。 DLL除了可同时被多个应用程序共享外,还可以在不改变调用接口(从而不需修改使用它...
MFC调用c#的dll
一、使用 /clr 编译 MFC 可执行文件或规则 DLL     1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。     2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。     3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使
VS2008中编译运行MFC应用程序时,出现无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
解决方法:“工具”—>“选项”—>“项目和解决方案”—>“VC++目录”,在可执行文件栏中加上如下路径: $(SystemRoot)\System32 $(SystemRoot) $(SystemRoot)\System32\wbem 转载自:http://blog.sina.com.cn/s/blog_7c9e15df0100tdbv.html
DLL中的回调函数实现
DLL中的回调函数实现DLL文件中存放的是各类程序的函数实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数地址,最后进行调用。但是有时候我们需要DLL和程序进行通信,将应用程序的某些功能提供给DLL使用,这时就可以使用回调函数。 比如应用程序A调用动态链接库D,同时需要将D中的一些日志信息反馈给A进行处理。这时可以在A中设置写日志的回调函数提供给DLL。 一、调用程序中操作 应用程序提
发布程序时的VC及MFC运行环境
 发布程序时的VC及MFC运行环境 如果.net程序使用了VC或者MFC,在发布应用程序时需要发布相关的dll,程序才能使用具体需要哪些dll,可以通过VC6附带的工具DEPENDS查找。 在Microsoft Visual Studio 8/VC/redist目录下有CRT,MFC,ATL等的运行环境,注意分Debug和Release版,dll名字以D结尾的就是Debug
MFC 生成中英文版软件对应的工程属性设置
开发环境 :VS2010 MFC 单文档程序 前提:所有资源文件均分为中文、英文对应两份 工程属性设置: 生成中文可执行文件  右击工程--> 属性 -->Resources --> General --> Preprocessor Definitions 设置为 NDEBUG;                                                  
vs2010 MFC生成exe文件可以在无VS上运行
右击项目名称,选择属性,1.在常规中将MFC的使用选择为:在静态库中使用MFC                                                    2. 选择C/C++  ---代码生成--------运行库中选择多线程(/MT),点击确定 再将VS菜单上调试时的DEBUG修改为RELEASE即可。
DLL+资源模块切换
MFC程序中存在一个模块状态(Module State)的问题,也就是资源重复的问题。(此处的术语模块是指一个可执行程序,或指其操作不依赖于应用程序的其余部分但使用MFC运行库的共享副本的一个DLL(或一组DLL)。我们所创建的MFC DLL就是这种模块的一个典型实例。)       在每个模块(EXE或DLL)中,都存在一种全局的状态数据,MFC依靠这种全局的状态数据来区分不同的模块
MFC如何调用DLL中的类
/* *1、先用mfc向导生成静态dll文件。 *2、编辑增加类; *3、生成dll文件和lib文件; *4、将生成的dll和lib,和类的头文件复制到需要引用的文*件exe下; */ //导出dll的头文件myClass.h #define DLLimport __declspec(dllimport) #define DLLexprot __declspec(dllexpo
vc2010设置为静态编译
问题:VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法 解决方法: 1.将这些dll打包,和应用程序一起发布; 2.采用MFC静态编译; 附1:VS2010中静态编译设置方法       使用VS2010编译的程序在windows xp中运行时  经常会出现找不到  相关的DLL文件,我们可以使用静态编译
VS2010 (MFC)调用 C#生成DLL的两种方法
VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件,而Visual C#生成的DLL不是独立运行的程序,是某个程序的一个部分,只能由所属的程序调用,用户不能也不需要打开它,Visual C#编译器生成的托管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实际上是一种中间语言(IL)代码,需要经
关闭
关闭