MFC中如何调用C# DLL的属性和方法

MFC中如何调用C# DLL的属性和方法,第1张

一、使用 /clr 编译 MFC 可执行文件或规则 DLL

1、打开项目属性对话框,方法是右键单击解决方案资源管理器中的项目并选择属性。

2、展开配置属性旁边的节点并选择常规。在右侧窗格中的项目默认值下,将公共语言运行库支持设置为公共语言运行库支持 (/clr)。

3、在相同的窗格中,确保将MFC 的使用设置为在共享 DLL 中使用 MFC。

4、在配置属性下,展开C/C++旁边的节点并选择常规。请确保将调试信息格式设置为程序数据库 /Zi(而不是/ZI)。

5、在配置属性下,选择C/C++,然后选择代码生成。请确保将运行时库设置为多线程调试 DLL (/MDd)或多线程 DLL (/MD)之一。

二、在代码引用需要的dll

#using <mscorlibdll

#using DownloaFilesdll //换成需要的dll文件

using namespace System;

using namespace ADMessage_test;//换成dll中类所使用的namespace

三、在dll函数调用代码前加入#pragma managed

这是manage和unmanage混合编程在MFC下的一种实现方式。

去微软官网下载 Microsoft Visual C++ 2015 Redistributable Package,网址在百度上搜索就可以了,记住一定要下载32位的文件,也就是X86版本,64位也就是X64是没有mfc140udll的,X86才有 。

其实,对于大部分vcrt dll 文件的缺失也可以在微软官网下载 Visual C++ 对应的版本,记得区分32位和64位。实在区分不了可以两个版本都安装。

通过安装 Visual C++ 对应版本比一个一个的 dll 文件下载再注册要方便一点,这篇文章也是提供另一种思路,另一种解决办法。因为我看见网上大多数解决方案都是缺什么文件就下载什么文件,所以在此给出了另一种思路方案。

出现丢失msvc类dll提示的本质原因是这个程序是用VC++编译的,要运行此类程序电脑上就必须先安装它所需要的VC++运行库,VC++运行库主要有2005 2008 2010 2012 2013 2015等这n个年份的版本,每个年份版本还分为32位版和64位版,各个版本之间互相独立。

mfc140udll官方版是电脑Windows系统中必不可少的文件补丁:

mfc140udll一般情况下它都是在装系统的时候电脑系统自己创建的,无需文卫安装,也不能随意修改。mfc140udll可解决系统出现“找不到mfc140udll”或“mfc140udll缺失”等错误信息情况。

楼上老兄说得对,我再补充点吧。在目标机器上安装NETnbsp;Framework,如果你用了NET的框架类,就需要此平台支撑。用静态链接到MFC库,可以解决dll的大多数问题,但是程序体积明显增大。给你另外两个建议:1在VS2008环境中运行程序的Release版本,观察调试窗口中,程序加载了哪些库文件(DLL,ocx等)。2用VS2008命令行工具的dumpbin命令,dependents和import参数分别分析以下你的程序依赖哪些库,需要引入哪些库。根据目标机器的环境,酌情将缺失的库一起copy过去,^_^

最主要区别在于:普通的DLL只能输出函数供其他程序调用,而MFC的DLL不但可以输出函数,还可以输出类,但只有MFC的程序才能使用MFC DLL输出的类。如果你没有使用MFC来输出类,那么得到的DLL与普通的DLL没有什么本质区别。

DEBUG 200多K,如果你release可以缩小一点,如果调用了MFC的类库,就单独拷贝一个MSVCR100DLL就OK了(要注意,MFC的运行库分两种,一个是X86一个是X64的,别拷贝错了),和你的EXE放到一起,然后在其他机器上都可以运行。

可以把dll以二进制形式写入到exe文件后面(exe允许后边添加任意长度数据 不影响程序的运行)长度为dll大小 在程序初始化的中读取自身文件后偏移dll大小的数据 然后创建这个dll 再loadlibrary 程序退出前deletefile把dll删除 如果不想被发现的话 还可以把dll的属性设置为隐藏或者直接将dll写入到windows目录下

以上就是关于MFC中如何调用C# DLL的属性和方法全部的内容,包括:MFC中如何调用C# DLL的属性和方法、mfc140u.dll 丢失、用VS2008编的MFC程序需要哪些dll支持等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9392486.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存