Re: [問題] 2010 C#引用C++ dll在XP上會出錯

看板C_Sharp (C#)作者 (PeterPan)時間13年前 (2012/05/28 13:16), 編輯推噓2(2010)
留言12則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/28 22:43, , 1F
我是同時在win7和XP上做開發的 所以在win7上寫到某一程
05/28 22:43, 1F

05/28 22:44, , 2F
度後 丟給其他人繼續寫(他用XP 一樣VS2010)
05/28 22:44, 2F

05/28 22:45, , 3F
但是編譯完執行DLL部分時會出錯 重新在XP編譯DLL檔也沒
05/28 22:45, 3F

05/28 22:45, , 4F
用....
05/28 22:45, 4F

05/29 11:00, , 5F
試試看在DLL內,每個step都丟一個debug msg出來,也許有幫
05/29 11:00, 5F

05/29 14:41, , 6F
而且還要編號,就知道問題出在哪...
05/29 14:41, 6F

05/29 22:35, , 7F
但是在 win7沒問題...orz
05/29 22:35, 7F

06/11 05:07, , 8F
之前的問題解決了,我後來把visual studio裝在target
06/11 05:07, 8F

06/11 05:08, , 9F
machine上面,就發現原來某些路徑在x64和x86下面是不
06/11 05:08, 9F

06/11 05:09, , 10F
一樣的,所以多加了偵測platform的指令,就可以同時在
06/11 05:09, 10F

06/11 05:09, , 11F
Win7和WinXP下面都可以跑,可以參考一下
06/11 05:09, 11F

06/11 05:10, , 12F
我的問題是出在"C:\program file (x86)"這個路徑
06/11 05:10, 12F
文章代碼(AID): #1FmmeXsQ (C_Sharp)
文章代碼(AID): #1FmmeXsQ (C_Sharp)