1. 程式人生 > >64位開發環境下編譯32位dll檔案

64位開發環境下編譯32位dll檔案

       最近在做PH專案的時候,遇到了一個小問題。我們做的系統,算是在人家基礎上的一個二次開發:我們用到他們裝置,同時需要他們給我們提供介面。我們拿到介面,在32位系統上編譯不會出問題,而在我這64位系統上編譯總是提示錯誤:

呼叫 Dll "試圖載入格式不正確的程式。 (異常來自 HRESULT:0x8007000B)

       我一開始的想法是在網上重新找一個的新DLL檔案,也就是64位的系統下的DLL檔案,然後再註冊一下就得了。可喜的是裡面有X86和X64兩個資料夾。X86裡面有一個DLL檔案,而X64卻是空的。弄得我非常無語,然後我在網上繼續找了DLL檔案,一個一個的註冊,弄了半天也沒成功。

      問題已經很顯然了,就是我的64位開發環境編譯32位dll的問題。今天我換了個想法:怎樣讓它編譯成功。問題很容易就解決了。

      開啟VS,選中你專案的解決方法,右擊選擇屬性(或者Alt+Enter),然後開啟生成選項卡,將目標平臺改為X86,這樣編譯出來的就是32位的dll了。同時,如果你的程式中含有關於指標的程式碼,一般會報錯導致你無法編譯,這是你需要在本選項卡中勾選“允許不安全程式碼選項”。


       解決問題之後才知道這個問題這麼簡單,同時也感覺到儘管VS已經用了好長時間,但是VS平臺自己還不能說會用。