從VC6 0平台級到VS2008平台 之一

2021-06-19 02:14:35 字數 1792 閱讀 6199

從vc6.0平台級到vs2008平台

最近在在把一些程式從vc6遷移到vs2008,由此而關注到一些這方面的知識,找了一些資料,根據自己遇到的一些情況,結合在一起,整理出來這篇文章,希望對以後有這方面工作的人多一些參考,如果大家還有可很享的可以跟貼。。。。

提到這個問題是因為,這裡涉及到winodws版本的定義。關於版本定義的關鍵無外乎為程式標頭檔案中對於#define winver 和 #define _win32_winnt 的使用,具體為:

#define winver 0***xx
#define _win32_winnt 0***xx
該定義一般用於標示程式對執行環境的要求,另外在某些標頭檔案中也有這樣的巨集定義。如果版本匹配的話就會在編譯的時候將這些內容編譯,否則就不編譯。

定義正確的windows版本,不僅關係到程式的正確編譯,同時也關係到程式的正確執行;在公升級的過程中,我就碰到了程式編譯正確但執行出錯的問題。

版本的定義關係到被編譯到程式中的內容,這裡主要是指系統提供的功能**。windows各個版本的功能雖然大差不差,但特定於某個系統功能還是存在的,於是關係到這些功能的api**也就有所不一樣。當我們在程式中定義了錯誤的系統版本,被編譯程序式的內容便可能包含當前系統不支援的**片段,這樣的程式即使可能正確編譯通過,但在執行的時候,由於在當前系統中找不到相應的內容資源,從而發生錯誤。這一點熟悉動態鏈結庫(dll)的人都很清楚,其實該問題就是和系統動態鏈結庫有關。

考慮到我遷移程式的時候,是直接利用vs2008將vc6程式轉化的方式,然後按vs2008新建專案的stdafx.h檔案內容更新了原來的stdafx.h標頭檔案,並新增了vs2008專案才有的targerver.h標頭檔案。(工程轉換時,沒有targerver.h為我們生成,預設的winver = 0x0600 的系統環境(這裡指明了系統為vista),所以要改變就要自己手動新增targerver.h)

根據targetver.h標頭檔案裡的下列定義:

#ifndef winver                  // 

指定要求的最低平台是

windows vista

#define winver 0x0600           // 

將此值更改為相應的值,以適用於

windows

的其他版本。

#endif
#ifndef _win32_winnt            // 

指定要求的最低平台是

windows vista

#define _win32_winnt 0x0600     // 

將此值更改為相應的值,以適用於

windows

的其他版本。

#endif
ps:0×0500 表示windows 2000,0×0501為windows xp,0×0502為windows server 2003,0×0600 為 windows vista。

2、關於dx8sdk使用中link時出現的libci.lib無法找到的問題

最近開發過程中碰到了用dx8 sdk編譯專案時,在link的時候,無法開啟libci.lib的問題.

link:fatal error  lnk1104:無法開啟檔案:libci.lib"

解決辦法如下:

選擇工程的屬性,在linker選項中選擇command line ,增加下面一行:

/nodefaultlib:libci 

原因:出現在vc9中,可能沒有選擇「安裝舊的iostream庫」.導致這個問題.在我看來,還是微軟的問題.

從VC6 0平台級到VS2008平台 之一

從 vc6.0 平台級到 vs2008 平台最近在在把一些程式從 vc6遷移到 vs2008 由此而關注到一些這方面的知識,找了一些資料,根據自己遇到的一些情況,結合在一起,整理出來這篇文章,希望對以後有這方面工作的人多一些參考,如果大家還有可很享的可以跟貼。提到這個問題是因為,這裡涉及到 wino...

VS2008與VC6 0的變化

1.messagebox vc 6.0 messagebox hello,world vs2008 messagebox l hello,world 或 messagebox text hello,world 2.combo box內容新增方法 vc 6.0 drop down list box c...

VS2008與VC6 0的變化

1.messagebox vc 6.0 messagebox hello,world vs2008 messagebox l hello,world 或 messagebox text hello,world 2.combo box內容新增方法 vc 6.0 drop down list box c...