作者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
推 advance760:我是同時在win7和XP上做開發的 所以在win7上寫到某一程 05/28 22:43
→ advance760:度後 丟給其他人繼續寫(他用XP 一樣VS2010) 05/28 22:44
→ advance760:但是編譯完執行DLL部分時會出錯 重新在XP編譯DLL檔也沒 05/28 22:45
→ advance760:用.... 05/28 22:45
→ proach:試試看在DLL內,每個step都丟一個debug msg出來,也許有幫 05/29 11:00
推 if4:而且還要編號,就知道問題出在哪... 05/29 14:41
→ advance760:但是在 win7沒問題...orz 05/29 22:35
→ phantasma:之前的問題解決了,我後來把visual studio裝在target 06/11 05:07
→ phantasma:machine上面,就發現原來某些路徑在x64和x86下面是不 06/11 05:08
→ phantasma:一樣的,所以多加了偵測platform的指令,就可以同時在 06/11 05:09
→ phantasma:Win7和WinXP下面都可以跑,可以參考一下 06/11 05:09
→ phantasma:我的問題是出在"C:\program file (x86)"這個路徑 06/11 05:10