我有一個非常簡單的Delphi 2010 dll,我從Visiual Studio 2008 C ATL控制檯應用程序(MVF GUI應用程序也不工作)加載。當我直接從IDE調試控制檯應用程序 - 沒有中斷點時 - 應用程序的輸出不正確,但是當我直接運行應用程序時,或者如果使用調試程序附加到進程,則它可以100%工作。從Delphi控制檯應用程序(即從IDE運行它)調試相同的DLL也可以。VS2008/2010調試器更改應用程序行爲
VS調試器似乎打破了應用程序,取決於你如何運行它。 VS2010也一樣!
我已經100%肯定 - 幾次! - dll導出的數據類型和調用約定與控制檯應用程序中的數據類型和調用約定匹配。我可以詳細討論,但我不想將此事與可能無關的信息混淆。如果我提供的是不夠的,請告訴我是否必須詳細瞭解代碼的細節。
有沒有人經歷過這種事情,並知道如何解決它?
Gerhard,你檢查過並行問題/比賽條件嗎? (這是一個多線程的應用程序?)。 此外,如果你用delphi/dll等標記你的問題,你可能會瞄準更好的觀衆。 – 2010-07-20 17:27:40
這是一個單線程的應用程序。 – 2010-07-21 07:24:24
這兩種情況的輸出有什麼區別?調試器改變各種事物;時間肯定會有所不同,但其他事情也可能不同。我們需要一些額外的信息來了解行爲不同的方向。 – 2010-07-21 11:11:45