分享

托管C++脱离.NET框架测试【二】

 quasiceo 2012-12-17

托管C++脱离.NET框架测试【二】

上一篇日志《托管C++脱离.NET框架测试【一】》主要是简单的介绍了下托管C++的优点和缺点。

这次我们来做一个实验,就是让C++.NET编写的托管代码,脱离.NET框架运行。

本次验证的是这个思路的可行性,而不是做性能检测,我估计,全部编译为IL,性能还是有一定的损耗。

测试环境:

虚拟机 Windows XP sp2 未安装.NET框架【等会提取文件的时候要安装】

开发环境:

VS2008,托管C++,WINDOWS应用程序,数据库 SQL SERVER 2005。

需要软件:RemoteSoft .net linker 2.1

首先,我们在本机上用托管C++编写了一个Windows应用程序,用来读取数据库。这个程序在本机上当然可以运行了,因为我们机器上安装了VS2008,也就是说安装了C++.NET的运行库。

GO ON把程序拷贝到虚拟机里,发现无法运行,这是非常正常的,没有运行库支持嘛。

然后,我们在虚拟机里安装.NET FRAMEWORK 2.0 【我的代码是在这个版本下写的】

接着,把RemoteSoft .net linker 安装到虚拟机上,用来提取.net类库。

最后一步,把我们的应用程序拷贝到RemoteSoft 的bin目录下,用命令行执行命令。

如下图所示:

然后等待10几秒吧,提取完毕,这个时候关闭控制台。打开bin目录,找到一个文件夹,叫做mdeployed。这个文件夹就是我们提取好了的程序。打开文件夹,找到我们的源程序,叫做 Winform_Test.exe,当然,这个是我用托管C++编译出来的文件,名字大家可以随便取。

双击执行,然后报错。。。这很正常,因为没有VC的运行库。打开本机的VS2008目录,把VC库拷贝到mdeployed目录下,成功运行。

那到底运行库文件是哪几个呢?为了方便大家调试,我贴图说明。下图的4个高亮显示的文件,是额外加入的运行库。

本次试验中,可以把高亮显示部分上面的VC8运行库删除,这次不需要他们。然后压缩目录,大概是8M左右,接近飞信的虚拟机了。

至于使用MONO来运行托管C++程序,还有待证明。今天也没时间,改天看看是不是有可行性。

不定期更新中。。。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多