2011-04-15 73 views
0

我有一個在VS 2008中創建並用C#編寫的DLL。 該dll項目與「任何CPU」標誌一起構建。當它在戴爾/英特爾Windows 7 x64機器上部署並運行時,它會啓動正常,但它在嘗試開始使用加密時崩潰 - TDESAlgorithm.CreateDecryptor();C#在x64上崩潰

這是mscorlib.dll的一部分。

我已經構建了應用程序作爲目標x64,但它也崩潰在同一個地方。它在32位機器上運行良好。

我怎樣才能讓它在x64上成功運行?

+8

什麼是錯誤信息/異常? – dsolimano 2011-04-15 13:45:49

+3

如果爲x86構建它,它會在x64機器上運行嗎?如果是這樣,他們的東西不是64位準備好的。 – sgmoore 2011-04-15 13:52:53

+0

沒有錯誤。調用它的應用程序崩潰,並且有一個關於將轉儲發送到Microsoft的彈出窗口。 – George 2011-04-15 14:20:08

回答

1

我遇到了.NET中創建的Windows服務的類似問題。這是拋出異常和Windows日誌文件指出mscorlib.dll和kernel32.dll中的錯誤(如果我沒有記錯的話)。沒有使用外部32位DLL或特殊代碼,只有純.NET。

我得到的解決方案是編譯爲x86,然後在64位機器上運行它(如32位)應用程序。只要你不需要64位來運行你的應用程序,這可能是一個解決方案。

1

我得到的解決方案是編譯爲x86,然後在64位機器上運行它(如32位) 應用程序。這可能是一個解決方案,只要你不需要64位來運行你的應用程序就可以了,只要 。 - 蓋爾·莫

我只是想指出,編譯和64位機器上運行鍼對x86是一個答案......喬想知道爲什麼它在64位模式下崩潰......顯然,x86模式下運行在x64機器上。如果你不能讓你的汽車在一定的售後市場環境下運行,如果我告訴你只是在沒有汽車的情況下駕駛汽車的話,你會認爲這是一個有效的答案嗎?顯然不是......在發佈之前仔細考慮你的答案,好嗎?

如果爲x86構建它,它會在x64機器上運行嗎?如果是這樣,他們 東西不是64位準備好。 - sgmoore

我同意...我想補充說,如果你沒有源代碼(你可能沒有),那麼你是運氣不好,我害怕...我發現THIS文章,更全面地解釋...除此之外,你可能需要看看不同的DES解密庫... OpenSSL/SSH也許?