2014-02-20 65 views
0

我已經使用C++創建了一個64位的DLL。是否有可能有一個C#32位DLL作爲封裝到64位以上的DLL?本地64位DLL的32位Dll包裝

我能夠通過創建一個64位c#wrapper dll來完成工作。但是當我試圖使用32位包裝器時,它不起作用,可能嗎?還是我在做一件永遠無法做到的事情?

回答

4

32位代碼不能(直接)調用64位代碼,反之亦然。你必須轉換模式,這隻能在操作系統級完成。因此,雖然我不是.NET/C#的專家,但我會說「不可能」。

您可以構建一個獨立的服務進程,該進程在64位空間中運行並使用64位DLL,並使用進程間通信來回傳遞數據。

或者將該DLL編譯爲32位庫...

+1

絕對正確:32位進程永遠無法加載64位DLL。使用AnyCPU程序集的Interop(與特定於應用程序的DLL)一起呈現另一個挑戰。 :) –