2009-08-27 64 views
0

我們寫的時候 程序集asm = AppDomain.CurrentDomain.Load(SomeByteArray);appdomain C++ c#

當從.net .exe讀取SomeByteArray一切正常,並從C++時,錯誤。

這個功能對使用.net exe很重要嗎?

如果是的話請用其他方式來做到這一點。

感謝

+0

當你說「C++」你的意思是C++/CLI?你得到了什麼確切的錯誤? – 2009-08-27 11:35:54

+0

無法加載從ConsoleApplication3,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其某個依賴關係加載的文件或程序集「38400字節。試圖加載格式不正確的程序。 ConsoleApplication3是我的節目裏我叫AppDomain.CurrentDomain.Load(模板)方法, 感謝 – 2009-08-27 12:00:13

+1

我認爲這是不可能的:( AppDomain.CurrentDomain.Load(SomeByteArray); SomeByteArray必須.NET :(,我是對的? – 2009-08-27 12:11:52

回答

0

是調用組件和一個你同時裝入同一種版本(86,64或AnyCpu)的?您可以通過在ILDASM中查看它們來檢查構建(查看清單,滾動到底部並查找校正碼)。

如果您自己構建了兩個裝配體,那麼只需檢查項目的屬性頁以瞭解其構建方式。

您必須確保它們是相同的,或者如果.exe是AnyCpu,那麼您加載的程序集必須匹配任何操作系統。這意味着它必須是32位操作系統上的x86或64位操作系統上的x64。

(這是所有假設SomeByteArray從文件加載正確)