如何在VC++ MFC对话框中添加自己的.DLL文件,使用其中的接口函数设计网络聊天工具?

如何在VC++ MFC对话框中添加自己的.DLL文件,使用其中的接口函数设计网络聊天工具?,第1张

两种方式:

1、隐式链接

包含你的DLL导出函数的头文件,链接DLL工程导出的lib库;

这个用起来比较方便,缺点是DLL不存在的话,应用无法启动。

2、显示链接

通过LoadLibrary加载你的DLL,GetProcAddress获取函数指针并调用。

这个的好处是DLL会在你需要的时候才加载,不用不加载。

2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。 4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。 5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。二、在代码引用需要的dll#using #using "DownloaFiles.dll" //换成需要的dll文件using namespace Systemusing namespace CGistarMath//换成dll中类所使用的namespace三、在dll函数调用代码前加入#pragma managed这是manage和unmanage混合编程在MFC下的一种实现方式。 以下是我自己碰到的问题的总结: 当我在声明一个变量的时候,是在.H文件的类里面声明: CGistarMath^ CSPro但是编译的时候会出现这个错误:error C3265: 无法声明托管“CSPro”(在非托管“CMathCPPDlg”中) 不能声明全局或静态变量,也不能声明引用 gc 堆中对象的本机类型成员因此,我只能讲CGistarMath^ CSPro修改成 CGistarMath^ CSPro = gcnew CGistarMath()并且放入函数的实现当中,才将该问题解决,但是有个缺点就是需要使用到该DLL的函数都要自己生面一个对象,比较麻烦,也容易造成资源浪费,因此不只你们有没有其他好的办法呢??


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11614305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存