作者phantasma (PeterPan)
看板C_Sharp
标题Re: [问题] 2010 C#引用C++ dll在XP上会出错
时间Mon May 28 13:16:15 2012
※ 引述《advance760 (生命的祝福)》之铭言:
: 因为有用VC 2010写好一个dll档
: 丢给C#2010用 在win7上都可以跑没问题
: 唯独在xp上都不能跑 执行到外部dll函式时都会出现 记忆体已损毁的例外状况
: 然後win7跟XP都试了几台 XP的电脑编译完执行时都会发生同样错误
: 这是什麽原因呢
: 还是VS2010和XP不相容 但是我查了很久 也没看到说VS2010不能在XP跑的问题
你有试着在你的 c++ code 里面加上 try-catch 来看看可能哪编有问题嘛?
我不知道答案,目前也遇到类似的问题
我的 C# 程式是用 vs2010 编译的,在 Windows 7 的开发环境下测试没有问题
然後我直接把程式拷贝到装有 Windows XP SP3 + .net 3.5 的电脑上面
却没有办法执行
什麽错误讯息都没有,我有试着写入 log 档
或是做一个全域的 try-catch ,类似:
try{
Application.Run(Form1());
}
catch(Exception e){
MessageBox.show(e.ToString());
}
但是也没看到任何错误的讯息
google之後,有人说可能是 .dll 连结有问题
建议用 Fusion Log Viewer 但是我现在还在学怎麽用
如果有人有类似的经验然後知道怎麽处理的
麻烦分享一下经验,感激不尽!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 108.178.172.190
1F:推 advance760:我是同时在win7和XP上做开发的 所以在win7上写到某一程 05/28 22:43
2F:→ advance760:度後 丢给其他人继续写(他用XP 一样VS2010) 05/28 22:44
3F:→ advance760:但是编译完执行DLL部分时会出错 重新在XP编译DLL档也没 05/28 22:45
4F:→ advance760:用.... 05/28 22:45
5F:→ proach:试试看在DLL内,每个step都丢一个debug msg出来,也许有帮 05/29 11:00
6F:推 if4:而且还要编号,就知道问题出在哪... 05/29 14:41
7F:→ advance760:但是在 win7没问题...orz 05/29 22:35
8F:→ phantasma:之前的问题解决了,我後来把visual studio装在target 06/11 05:07
9F:→ phantasma:machine上面,就发现原来某些路径在x64和x86下面是不 06/11 05:08
10F:→ phantasma:一样的,所以多加了侦测platform的指令,就可以同时在 06/11 05:09
11F:→ phantasma:Win7和WinXP下面都可以跑,可以参考一下 06/11 05:09
12F:→ phantasma:我的问题是出在"C:\program file (x86)"这个路径 06/11 05:10