1. 程式人生 > >使用VC6將32位程式編譯成為64位程式(這個才是可行的)

使用VC6將32位程式編譯成為64位程式(這個才是可行的)

看了好多好多資料,自己也太過依賴現有的資料,按部就班不是真理不是真理!!!

  1. 建立64位環境

                網上資料很多都以SDK2001少數以2003為例,有的說SDK2003是最後支援VC6的,汗,也不知道內在什麼原因,就按部就班的去下了2001/2003,嘗試到後面步驟的時候,雖然編譯通過了,但是移到64位系統下並沒有執行正確,無奈啊當時。最後由於本人機上裝有VS2010看看,是不是有對應的SDK啊。果不其然,有!要不就用他試試吧,在開始選單下定位到“…/開啟 Visual Studio x64 相容工具命令提示(2010)”,然後用"msdev /useenv"開啟VC6,檢視配置下的目錄/lib等,都正確指定到對應目錄,看到包含AMD64啊,大喜。

  2. 修改構建配置

                    就將Release或debug的構建配置複製一個,喚作xxx64即可。並激活新建立的。

  3. 修改專案配置

                     我就做了如下幾個步驟:

                            1、在”Project Settings”對話方塊中, 點選”General”標籤. 在”Output directories”, 在”Intermediate files” 和”Output files”輸入框中, 鍵入”Debug64”(沒有引號)

                            2、在”C/C++”標籤上, 在”Debug info”下拉列表中, 選擇”Program database(引數選項對應是 /Zi)

                            3、在”Link”標籤上, 在”Project options”的輸入框中, 將”/machine:I386”改為“/machine:AMD64”

                     就這三步,編譯後得到的dll在64位環境下呼叫符合設想。

D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxresult(28) : error C2825: '_Fty': 當後面跟“::”時必須為類或名稱空間 這樣的錯誤要把所有bind改為 ::bind

vc的目錄配置無法儲存,需要手動改電腦配置裡的環境變數裡的include 和 lib 變數