MFC 编写Dll

VS---VS利用EXE调试dll的源码的设置 1.准备运行exe的运行环境; 2.设置dll的生成目录:方便dll的更新同步; 需要保证dll与exe在统一目录下。 3.设置exe的运行目录; 4.设置完断点,直接运行编译即可。 注:尽量不要有中文路径。 ... 阅读详情

在编写程序的时候,为了方便我们经常会把一个程序分成很多个模块,然后用Dll来组装编写。

在VS中编写Dll并在exe中使用首先:

根据需要新建一个Dll工程项目,把Dll项目附加进EXE项目(根据需要建立MFC DLL 还是是win32的DLL)

 

建立完成后我们在Dll项目的头文件中添加一个export.h头文件输入以下代码:

 

#ifdef MOFLLDLL_API
#else
#define MOFLLDLL_API __declspec(dllexport)
#endif

MOFLLDLL_API void GameRun();


在MFCLibrary1.h中添加以下代码:

 

 

#ifdef MOFLLDLL_API
#else
#define MOFLLDLL_API __declspec(dllexport)
#endif


接着在MFCLibrary1.cpp中添加以下代码:

 

 

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

MOFLLDLL_API void GameRun()
{
AfxMessageBox(_T(“123”));
}


这样我们的dll就处理完毕了。

 

1.接下来我们把 export.h 文件复制一份放到EXE项目下,然后在EXE项目里添加此文件(这里有个技巧,就是把Dll下的 export.h 先移除,然后从EXE下复制到Dll下,这下修改的export.h 文件是同步的,你就不再需要每次一增加一个新函数就要同时去修改EXE下的export.h )

2.在EXE项目的依赖项里面添加MFCLibrary1.lib

3.把MFCLibrary1.lib复制到EXE项目下 (也可以利用修改lib生成路径去设置,避免修改Dll带来不断覆盖旧文件的重复操作   VS修改lib生成路径方法:http://blog.youkuaiyun.com/nonecode/article/details/28364809)

4.在EXE工程的stdafx.h中添加#include "export.h

接下来你就可以在EXE工程中调用Dll的导出函数了!

 

MFC调用QT编写的DLL动态库 MFC调用QT编写的动态库,如果QT dll里面用到了一些消息循环相关的接口,比如QTimer,QEventLoop等,会由于没有QAppAplication而导致这些调用出现异常,如果DLL里面没有界面显示的话,解决方法还是相对比较简单的。 阅读详情

相关推荐

matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件

在开始建MFC(DLL)工程之前我们得下载matcom程序,然后安装,打开vc6.0然后打开 工具-定制-附加项,然后选中visual MATCOM Add-in,成功后在vc6.0工具栏上会有显示。   开始我们的工程:   (1)打开vc6.0建一个MFC(DLL)工程,然后点击工具栏上的m++按钮,添加编辑好的.m文件   (2)这时点击fileview视图,可以看到多了几个文件,然后

a135450的专栏 1340

在VS中如何把exe关联到DLL工程中

调试dll工程时关联外部exe 在调试DLL工程项目时,需要把外部的exe文件关联到本项目中,VC和VS具体操作如下: 在VC中: 鼠标右键点击工程名》设置》调试》可执行调试对话:(在下面输入你要调试的exe文件)         英文版:    》Settings》Debug》Executable for debug session 在VS2010中: 点击项目右键菜

技术大白的博客 4287

vs 2008 mfc 编写资源dll

网上找了几个例子,说的都不够清晰,干脆自己动手写一个,整理出来留给后来人借阅 首先文件->新建->项目,选中mfc->mfc dll,名字zydll,直接点击完成,创建一个(在共享DLL中使用mfc)的dll 起初我选择在静态库中使用,频繁提示错误,干脆修改成共享dll,问题解决。我们继续 切换到资源标签,添加资源->string table 点击新建,修改标题为test,修改值为2

rundll64的专栏 1716

常规DLL和MFC扩展DLL(转载)

原转载地址:

u014230987的专栏 733

【实战解析】Ubuntu双网卡冲突:如何解决同一网段下网关无法访问及上网问题

本文深入解析Ubuntu服务器双网卡配置在同一网段时引发的路由冲突问题,导致网关无法ping通及无法上网。通过分析路由表与Metric值原理,提供使用route命令调整优先级及修改Netplan配置文件的实战解决方案,确保主次路由明确,一劳永逸解决网络冲突。

f9g0h的博客 284

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 500

MFC创建、调用Dll的方法

MFC创建、调用Dll的方法

xujianjun229的博客 5219

别再到处找模型了!手把手教你用Xinference+Docker部署本地私有大模型(Llama2/Qwen实战)

本文详细介绍了如何使用Xinference和Docker部署本地私有化大模型(如Llama2/Qwen),涵盖硬件配置、模型管理、Docker部署及性能优化等关键步骤。通过实战案例,帮助开发者快速构建企业级AI推理服务,确保数据安全与高效运行。

weixin_28683065的博客 232

VS 中调用调试DLL库的方法

4、在配置框中选择附加到为本机代码,在可选进程中选择使用dll库程序的exe,配置完成之后点击底下附加即可完成配置。5、配置完成之后下次使用的时候直接点击重新附加到进程即可。1、当前代码是最新的,并且编译成dll的库有程序使用。1、使用VS打开要调试的dll库项目。3、点击附加到进程,弹出配置框。2、点击调试菜单展开调试菜单。2、打开运行dll库的程序。

qq_43812868的博客 4368

16、Arduino MEGA 2560 固件与电路详解

本文详细介绍了Arduino MEGA 2560的固件编程与电路设计,涵盖ATmega16U2和ATmega2560的熔丝配置、stk500v2引导加载程序的备份与恢复方法、使用Microchip Studio通过ICSP烧录固件的步骤,以及debugWIRE和JTAG调试接口的选择与配置。同时提供了电路块图解析、组件位置参考及常见问题解决方案,帮助用户深入理解硬件结构并进行高效开发与调试。

swift5iosmith的博客 195

小秋SLAM入门实战ubuntu所有文章汇总

ubuntu 终端如何停止快速打印的输出以及恢复命令 ubuntu 终端如何快速打开当前路径下的图形化窗口界面? killall -9用途用法 ps -xu | grep这个命令的用途 linux 下 top命令显示的是内存是堆内存吗? zip分割和合并 关闭除当前 GNOME 终端窗口以外的所有其他 GNOME 终端窗口 如何在安装系统后设置短密码 【如何使用getrusage获取消耗的CPU时间和进程使用的最大物理内存】 【webots安装使用教程】 Linux系统下查看当前运行的进程和线程的几种方法

小秋 AI SLAM 入门实战教程 1406

非MFC dll编写方法

1、C++ dll基本编写方法导出格式:_declspec(dllexport) int add(int a,int b)    //declare   specific导入格式:1>将Mydll.dll拷贝到Debug目录下2>#pragma comment(lib,"..//Mydll//Debug//Mydll.lib")//同一子目录下,..//代表返回当前工程上一目录,M

此博客不更新很多年了,博客作废............ 734

SerDes系列之FFE均衡技术

FFE的基本结构可以在RX侧或TX侧实现,其基本工作原理相同:它通过从同一信号源应用适当的延迟来产生多径信号,然后对它们进行线性缩放和组合以消除信道ISI。

一只豌豆象的博客 4246

MFC下调用Qt编写的含界面的dll

最近使用Qt编写了一个带界面的dll项目,使用Qt可以直接调用其导出的类,但是现在有个想法,如果使用MFC该如何调用Qt生成的dll呢? 在网上搜索资料,找到的都是关于用Qt如何导出函数,然后调用的例子,想来也是,毕竟Qt和MFC是不同的框架,如果是Qt导出的类,MFC应该是无法直接调用的,所以退而求其次能够调用Qt导出的函数也是极好的。 网上看到一篇《MFC 下调用Qt编写的含界面的dll》的文章,比较复杂,使用了qtwinmigrate,可能是因为版本的原因,新版本的Qt直接导出就可以使用了,我这里

秋月的私语 1517

WPF实现棋盘式图片切换效果

实现效果如下: 思路:在自定义控件中放置两个Image控件,点击前后翻页按钮时对图片进行裁剪,随机打乱顺序后添加动作。 步骤: 1、MyImageControl控件 /// <summary> /// MyImageControl.xaml 的交互逻辑 /// </summary> public partial class MyImageControl : UserControl { public static r

dnazhd的博客 1125

基于MATLAB的变分模态分解(VMD)算法详解

变分模态分解(VMD)是一种先进的信号处理方法,通过变分框架将复杂信号分解为多个模态分量。相比传统经验模态分解(EMD),VMD具有坚实的数学基础,能有效抑制模态混叠和端点效应。其核心思想是将信号分解转化为约束优化问题,通过交替方向乘子法迭代求解各模态的中心频率和带宽。VMD在机械故障诊断、生物医学信号处理等领域展现出优越性能,尤其适合处理非平稳非线性信号。该算法通过严格的数学模型实现自适应频谱优化,为信号分析提供了更可靠的工具。

qq_42212808的博客 739

DLL编写+MFC调用程序

*******************************************************************DLL编写 extern "C" _declspec(dllexport) int Test(int i){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); return  i+6;}************

RainEagle专栏 639

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

编写MFC dll

创建mfc dll项目。 创建bmp.h,bmp.cpp文件。 bmp.h添加代码. extern "C" bool bmpTojpg(char *path); bmp.cpp添加代码. #include"bmp.h" #include "stdafx.h" #include<atlimage.h> BOOL BmpToJpg(CString& ...

wang546248818的博客 516

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

如何利用MFC编写的.exe调用C#编写的dll动态库

如何利用MFC编写的.exe调用C#编写的dll动态库     由于项目的需要,将C#编写的dll动态库运用到MFC编写的.exe程序中,具体运用步骤如下所示: 一、使用/clr方式来编译MFC文件,具体操作主要是更改MFC所在的项目属性:     1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。     2、展开“配置属性”旁边的节

self_mind的记事本 2268

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MFC:Win32-Dll及MFC-Dll编写调用

一、win32-dll 1、编写 代码例如以下: Math.h #ifdef MATH_EXPORTS #define MATH_API __declspec(dllexport) #else #define MATH_API __declspec(dllimport) #endif extern MATH_API double PI; MATH_API int Add...

weixin_34376562的博客 132

编写MFC拓展DLL

工程名为 mfcExDLL,创建MFC拓展DLL工程后,自动生成以下源文件: mfcExDLL.cpp ,mfcExDLL.def ,mfcExDLL.rc ,StdAfx.cpp 以下头文件: Resource.h ,StdAfx.h   添加 mfcExDLL.h 头文件用于自定义函数的声明 mfcExDLL.h #ifndef mfcExDLL #define mfcExDLL #...

不积跬步无以至千里 775

MFC常规DLL和扩展DLL比较编写

本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。 一、DLL的不同类型     使用MFC可以生成两种类型的DLL:      A.MFC扩展DLL      B.常规DLL        常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。 1、MFC扩展DLL    每个DLL都有某种类型的接口

MOKA 4143

MFC中调用C#编写的DLL

一、使用 /clr 编译 MFC 可执行文件或规则 DLL 1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。 2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。 3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。 4、在

奋斗吧程序猿 3610

MFC 下调用Qt编写的含界面的dll

接到任务要做一个既可以在纠结了好几天了,

meether 1万+

如何在MFC中调用C#编写的DLL

一、使用 /clr 编译 MFC 可执行文件或规则 DLL1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。4、在

ouhaochuan的专栏 1543
上一篇: VS DLL修改lib生成路径
下一篇: MFC Unicode编码实现文本复制到剪贴板
Big Joker
博客等级 码龄14年 92粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值