mdsk.net
当前位置:首页 >> 请问C#写出的DLL与C++写出的DLL有何区别 >>

请问C#写出的DLL与C++写出的DLL有何区别

1、编程思想没有什么区别.核心底层理念上有分别,特别是与C++的MFC架构相比.2、C#基于.net技术.所以,它写出的DLL一般也只能在安装有.net的系统上运行.所以理论上比直接生成机器码的C++的DLL效率要慢一些.3、C++调用C#的DLL时,要使用.net相关的东西,比如要求CLR方式编程,不能用MFC架构.4、别的编程调用C#的DLL时也是类似的道理.如果是C#自个调自个的DLL,那基本上不用关注什么.

本质没有太大的区别.只是C#生成的dll是动态的.而win下的大都是静态的.

1)VC++编译的DLL(动态链接库)是二进制,不需要依赖任何框架.2)C#编译的DLL(动态链接库)是IL中间语言,需要依赖.NET Framework框架.3)JAVA与C#一个样,不管编译的是什么文件都需要依赖环境,用专业术语就是JAVA,C#都需要寄宿到各自的宿主环境.JAVA的宿主环境是JVM(JAVA虚拟机)

把DLL文件放在EXE文件相同的目录就OK

可以.N种方法使用C++调用C#.NET库http://www.360doc.com/content/12/1218/08/9200790_254706077.shtml

那个,其实没什么可区别的算了,还是先帮你解释一下dll吧DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源,一般来说,DLL是一种磁盘文件,以.dll、.DRV、.FON、.SYS和许多以.EXE

如果使用工具的话有很多查看PE头的工具,比如PEID或者使用ollydbg查看OEP的代码段

C#调用C++编写的DLL函数各种参数传递问题 1. 不返回值的参数C++ 原型:bool SendNewSms(char *szTel, char *szMessage);C#引用;[DllImport( "CdmaCard.dll",EntryPoint="SendNewSms")]public static extern bool SendNewSms(string

所谓托管代码,那就是由运行时自动处理内存的,如C#写的(非安全性的除外)都是托管代码.有垃圾回收机制来对内存进行管理.你调用C++的,那这个一定是非托管代码,.net运行时无法对PINVOKE的代码进行内存管理.需要你自己对内存进行回收. C++的dll还要调用其他dll时,这个也是非托管的.

微软的Visual C++支持三种DLL,它们分别是Non-MFC Dll(非MFC动态库)、Regular Dll(常规DLL)、Extension Dll(扩展DLL). Non-MFC DLL指的是不用MFC的类库结构,直接用C语言写的DLL,其导出的函数是标准的C接口,能被非

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com