MFC中调用外部动态链接库的内容,动态链接库dll文件放在哪儿。

MFC中调用外部动态链接库的内容,动态链接库dll文件放在哪儿。,第1张

你在问题补充里面说的非常正确你需要通过改变工作目录(workpath)来使得你的DLL能够正确的加载别人的DLL,我也遇到过这个问题根据你说的情况,你应该这样1用GetCurrentDir保存当前的工作目录2用SetCurrentDir将当前的工作目录,设置为你的DLL所在的路径,需要使用绝对路径3用LoadLibrary你的DLL4使用SetCurrentDir恢复到原来的工作路径

dll文件一般被存放在C:\Windows\System目录下。电脑系统文件因经常会受到病毒的侵扰,导致系统文件、dll文件等丢失、损坏,一些包括游戏在内的应用程序无法启动。

解决方法有:

1、用Windows系统盘功能进行文件修复

2、若在此之前有一键备份过,可以重新还原

3、从网上下载系统文件然后覆盖到原文件夹里

4、由于从网上下载系统文件,可能会因为系统文件版本与 *** 作系统不相符造成系统文件不兼容的情况,修复系统文件最好使用专业的工具进行一键修复。

5、可以用腾讯电脑管家修复下。打开电脑管家——电脑诊所——软件问题——缺少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/11916725.html

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

发表评论

登录后才能评论

评论列表(0条)

保存