最近遇到一个很蹩脚的问题

最近遇到一个问题:
就是在程序中直接运行一个非托管的EXE,该EXE已经在内存中了,我想直接运行起来;可是没有找到办法,CSDN里的大虾说这个托管代码是做不到的。
请教了MVP,给了一个参考,可是还是没有调用成功。很郁闷。
代码如下:
System.Reflection.Assembly asm = System.Reflection.Assembly.Load(Resource1.飞鸽传书);
System.Reflection.MethodInfo mi = asm.EntryPoint;
object o = asm.CreateInstance(mi.Name);
mi.Invoke(o, null);
可是老是在加载时报错BadImageFormatException异常:
未能加载文件或程序集“3305472 bytes loaded from WindowsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。

偶是个很菜地程序员,看了下MSDN帮助上说:
在 C++ 可执行文件上反射可能会引发 BadImageFormatException。造成这种情况的原因极有可能是 C++ 编译器去除了可执行文件中的重定位地址或 .Reloc 部分。若要保留 C++ 可执行文件的 .reloc 地址,请在链接时指定 /fixed:no。

希望能有解决地办法
参考地址:
http://www.codeproject.com/KB/cs/LoadExeIntoAssembly.aspx
http://msdn.microsoft.com/zh-cn/library/h538bck7(VS.80).aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值