dos下如何編譯
1. 如何在DOS下編譯C/C++程序
1, 找到VS的cl.exe所在目錄,把這目錄復制下來:
我的VS2008的CL.EXE目錄是在E:\Program Files\Microsoft Visual Studio 9.0\VC\bin,
VS2010可以類似的找到..
在'我的電腦'上點右鍵,
選右鍵菜單'屬性'->'高級'->'環境變數',
在彈出的環境變數設置框里找"PATH"這個變數, (在用戶變數或系統變數里都可以)
然後在"PATH"的值後面,用分號分隔,
把將才找到的路徑串復制進去,選確定.
2, 重新運行CMD開啟新的命令窗.
3, 輸入cl回車檢查PATH路徑是否生效.
//以上步聚是設置環境變數,只需設一次以後就好用了.以後每次要命令行下編譯C++程序,就從下面第4步開始.
4, 輸入vcvars32 ,運行cl.exe同一路徑下的vcvars32.bat,設置其它環境變數.
5, 寫一個helloworld程序,保存成hello.cpp, cl hello.cpp回車試試編譯正常不. 如果成功,則生成hello.exe文件.
//-----------------------------------------------------------
C/C++ 編譯器選項
-優化-
/O1 最小化空間 /Op[-] 改善浮點數一致性
/O2 最大化速度 /Os 優選代碼空間
/Oa 假設沒有別名 /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0) /Ow 假設交叉函數別名
/Od 禁用優化(默認值) /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啟用全局優化 /Oy[-] 啟用框架指針省略
/Oi 啟用內部函數
-代碼生成-
/G3 為 80386 進行優化 /Gh 啟用 _penter 函數調用
/G4 為 80486 進行優化 /GH 啟用 _pexit 函數調用
/G5 為 Pentium 進行優化 /GR[-] 啟用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化 /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化 /EHs 啟用 C++ EH (沒有 SEH 異常)
/GB 為混合模型進行優化(默認) /EHa 啟用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定 /EHc extern "C" 默認為 nothrow
/Gr __fastcall 調用約定 /GT 生成纖維安全 TLS 訪問
/Gz __stdcall 調用約定 /Gm[-] 啟用最小重新生成
/GA 為 Windows 應用程序進行優化 /GL[-] 啟用鏈接時代碼生成
/Gf 啟用字元串池 /QIfdiv[-] 啟用 Pentium FDIV 修復
/GF 啟用只讀字元串池 /QI0f[-] 啟用 Pentium 0x0f 修復
/Gy 分隔鏈接器函數 /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 啟用堆棧檢查(/RTCs) /RTC1 啟用快速檢查(/RTCsu)
/Ge 對所有函數強制堆棧檢查 /RTCc 轉換為較小的類型檢查
/Gs[num] 控制堆棧檢查調用 /RTCs 堆棧幀運行時檢查
/GS 啟用安全檢查 /RTCu 未初始化的本地用法檢查
/clr[:noAssembly] 為公共語言運行庫編譯
noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
-輸出文件-
/Fa[file] 命名程序集列表文件 /Fo<file> 命名對象文件
/FA[sc] 配置程序集列表 /Fp<file> 命名預編譯頭文件
/Fd[file] 命名 .PDB 文件 /Fr[file] 命名源瀏覽器文件
/Fe<file> 命名可執行文件 /FR[file] 命名擴展 .SBR 文件
/Fm[file] 命名映射文件
-預處理器-
/AI<dir> 添加到程序集搜索路徑 /Fx 將插入的代碼合並到文件
/FU<file> 強制使用程序集/模塊 /FI<file> 命名強制包含文件
/C 不抽出注釋 /U<name> 移除預定義宏
/D<name>{=|#}<text> 定義宏 /u 移除所有預定義宏
/E 預處理到 stdout /I<dir> 添加到包含搜索路徑
/EP 預處理到 stdout,沒有 #line /X 忽略「標准位置」
/P 預處理到文件
-語言-
/Zi 啟用調試信息 /Ze 啟用擴展(默認)
/ZI 啟用「編輯並繼續」調試信息 /Zl 省略 .OBJ 中的默認庫名
/Z7 啟用舊式調試信息 /Zg 生成函數原型
/Zd 僅有行號調試信息 /Zs 只進行語法檢查
/Zp[n] 在 n 位元組邊界上包裝結構 /vd{0|1} 禁用/啟用 vtordisp
/Za 禁用擴展(暗指 /Op) /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言一致性,這里的參數可以是:
forScope - 對范圍規則強制使用標准 C++
wchar_t - wchar_t 是本機類型,不是 typedef
- 雜項 -
@<file> 選項響應文件 /wo<n> 發出一次警告 n
/?, /help 列印此幫助消息 /w<l><n> 為 n 設置警告等級 1-4
/c 只編譯,不鏈接 /W<n> 設置警告等級(默認 n=1)
/H<num> 最大外部名稱長度 /Wall 啟用所有警告
/J 默認 char 類型是 unsigned /Wp64 啟用 64 位埠定位警告
/nologo 取消顯示版權消息 /WX 將警告視為錯誤
/showIncludes 顯示包含文件名 /WL 啟用單行診斷
/Tc<source file> 將文件編譯為 .c /Yc[file] 創建 .PCH 文件
/Tp<source file> 將文件編譯為 .cpp /Yd 將調試信息放在每個 .OBJ 中
/TC 將所有文件編譯為 .c /Yl[sym] 為調試庫插入 .PCH 引用
/TP 將所有文件編譯為 .cpp /Yu[file] 使用 .PCH 文件
/V<string> 設置版本字元串 /YX[file] 自動 .PCH
/w 禁用所有警告 /Y- 禁用所有 PCH 選項
/wd<n> 禁用警告 n /Zm<n> 最大內存分配(默認為 %)
/we<n> 將警告 n 視為錯誤
-鏈接-
/MD 與 MSVCRT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/ML 與 LIBC.LIB 鏈接 /MLd 與 LIBCD.LIB 調試庫鏈接
/MT 與 LIBCMT.LIB 鏈接 /MTd 與 LIBCMTD.LIB 調試庫鏈接
/LD 創建 .DLL /F<num> 設置堆棧大小
/LDd 創建 .DLL 調試庫 /link [鏈接器選項和庫]
2. 如何在DOS界面進行c語言編譯
以我本機為實例,我的VC6安裝在C盤,具體路徑:
C:\Program Files\Microsoft Visual Studio\VC98\Bin
你可以像我這樣嘗試輸入該路徑下的可執行文件,看看其用途說明,就知道哪個是編譯用的,哪個是鏈接用的。。。
C:\Program Files\Microsoft Visual Studio\VC98\Bin>cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]
然後我新建了一個cpp文件,就是顯示hello world,放在C:\test1\下面,我是這樣編譯的:
C:\Program Files\Microsoft Visual Studio\VC98\Bin>cl c:\test1\main.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:main.exe
main.obj
C:\Program Files\Microsoft Visual Studio\VC98\Bin>main
Hello world!
C:\Program Files\Microsoft Visual Studio\VC98\Bin>
3. 如何用dos編譯和運行一個java程序
以前遠標老師教過:第一:首先安裝JDK。
第二:為了能使Java程序在dos下很方便的編譯和運行Java程序,就要配置其運
行的環境變數,具體步驟如下:
(1)在安裝的目錄下找到你所安裝的JDK文件,在裡面找到java.exe文件,復制其路徑。
(2)滑鼠右擊我的電腦,打開屬性面板單擊高級菜單、選擇「環境變數」。
(3) 在彈出的面板中找到「系統環境變數」,在其窗口選中變數名為Path的變數。
4. c語言命令行程序如何在DOS下編譯運行
點擊電腦開始菜單,打開運行窗口,在窗口編輯框里輸入cmd,點擊確定按鈕,打開cmd命令
窗口,然後進入你的工程目錄中的可執行程序文件夾下
輸入可執行程序文件名後面帶上你需要的參數按Enter鍵就可以了
cmd命令:如你的可執行程序在D://CP//debug/aa.exe
你需要在命令行窗口輸入d:按Enter鍵進入D盤
cdCP/debug按Enter鍵進入D盤中CP目錄debug子目錄中
輸入aa.exe23按Enter鍵運行你的程序結果就會出現
2.000000tothe3.000000power=8
5. 在dos下編譯java文件
在dos下編譯java文件用javac命令,javac是用來編譯.java文件的。命令行下直接輸入javac可以看到大量提示信息,提示javac命令的用法,我只知道常用的。
javac -d destdir srcFile
其中:1、-d destdir是用來指定存放編譯生成的.class文件的路徑。(若此選項省略,那麼默認在當前目錄下生成.class文件,並且沒有生成包文件夾;當前目錄可以用「.」來表示,即:javac -d . srcFile )
注意:添加-d選項除了可以指定編譯生成的.class文件的路徑外,最大的區別是可以將源文件首行的package關鍵字下的包名在當前路徑下生成文件夾。
2、srcFile是源文件.java文件的路徑。
例如:有這樣一個簡單的java類,路徑為E: estJavacTest.java:
package com.stopTalking.test;
public class JavacTest {
public static void main(String[] args) {
byte a = 5;
short b = 6;
System.out.println("JavacTest [a=" + a + ", b=" + b + "]");
}
}
當前路徑下,輸入 javac JavacTest.java ,便在當前路徑下生成了一個JavacTest.class的文件,如圖:
6. 在dos控制台下如何編譯運行java程序
1.檢驗java是否正確安裝 java -version
2.進入到java代碼所在目錄 利用javac 進行編譯Java代碼文件,生成class文件例如
javac HelloWorld.java
3.在2中的目錄中利用java命令執行java程序
java HelloWorld
3中如果程序中如果有package,請在編譯和 執行時加入package名
7. 在DOS環境下,編譯java程序需要使用 命令,運行程序需要使用 命令。
第一:首先安裝JDK。
第二:為了能使Java程序在dos下很方便的編譯和運行Java程序,就要配置其運
行的環境變數,具體步驟如下:
(1)在安裝的目錄下找到你所安裝的JDK文件,在裡面找到java.exe文件,復制其路徑。
(2)滑鼠右擊我的電腦,打開屬性面板單擊高級菜單、選擇「環境變數」。
(3) 在彈出的面板中找到「系統環境變數」,在其窗口選中變數名為Path的變數。
Path是路徑設置命令,其功能是:設備可執行文件的搜索路徑,只對文件有效。當運行一個可執行文件時,DOS會先在當前目錄中搜索該文件,若找到則運行之;若找不到該文件,則根據Path命令所設置的路徑,順序逐條地到目錄中搜索該文件;Path命令中的路徑,若有兩條以上,各路徑之間以一個分號「;」開。
(4)單擊「編輯」,在彈出的窗口中的變數值的最後面粘貼上你剛才找到的路徑,中間用分號隔開,單擊確定。這樣你就可以在DOS下很輕松的編譯和運行Java程序.
如果Path路徑中前面的路徑有別的JDK版本,則在DOS下運行的是路徑比較前面的版本。
第三:編譯Java程序生成「.class」文件,在DOS下,應用DOS命令找到你所編Java程序文件(假設文件名為HelloWorld.java)的根目錄下輸入命令:javac
HelloWorld.java。如果生成。「.class」文件則編譯成功。
第四:執行Java程序:接著上步操作輸入:java HelloWorld;在命令提示符上會出現運行結果。
8. DOS下面 如何用IAR編譯程序
第一種編譯方法( 編譯直接生成class 文件,執行需先創建包的路徑)
假設當前目錄為/src/java/ ,則編譯命令為:
javac HelloWorld.java
假設當前目錄為/src/ ,則編譯命令為:
javac /src/java/HelloWorld.java
或者使用相對路徑:
javac java/HelloWorld.java
執行完該命令後, 在/src/java/ 目錄下生成一個HelloWorld.class 文件。執行文件(在java 目錄下新建目錄a ,在a 目錄下新建目錄b 將HelloWorld.class 至於b 目錄下;執行java a.b.HelloWorld ),必須要按照包的結構先創建目錄。
第二種編譯方法( 編譯直接生成包的路徑)
假設當前目錄為/src/java/ ,則編譯命令為:
javac -d . HelloWorld.java
說明:"." 為指定編譯路徑為當前目錄;生成的HelloWorld.class 所有目錄為/src/java/a/b/HelloWorld.class 。
javac -d c/d HelloWorld.java
說明:c/d 為指定編譯路徑為/src/java/c/d ,同樣也可以寫成絕對路徑如javac -d d:/ HelloWorld.java ,前提是路徑必須先存在;生成的HelloWorld.class 所有目錄為/src/java/c/d/a/b /HelloWorld.class 。
假設當前目錄為/src/ ,則編譯命令為:
javac -d . java/HelloWorld.java
說明:生成的HelloWorld.class 所有目錄為/src/a/b/HelloWorld.class 。
javac -d java/c/d java/HelloWorld.java
說明:生成的HelloWorld.class 所有目錄為/src/java/a/b/HelloWorld.class 。
第三種編譯方法(先把源文件按照包結構放到指定的目錄中,然後執行編譯命令)
假設當前目錄為/src/java/,先在目錄中創建目錄/a/b,然後編譯命令:
javac a/b/HelloWorld.java
下面總結一下對於帶包的類進行編譯和執行時的一些要點:
1、編譯時可以不考慮包結構的問題,不論用哪種方法,其實本質都是一樣的,只需要讓javac命令找到所需要編譯的原文件(*.java)即可。編譯時可以用相對或者絕對路徑來為javac命令提供源文件的位置信息。
2、初學者易混淆classpath的作用,對於java命令的-cp選項和javac命令的-classpath選項,以及配置環境變數時的 CLASSPATH.其作用是不變的:都是指定所需要的class文件的位置。所不同的是,執行javac編譯時的-classpath選項用於指定被編譯的源文件需要調用另外的用戶自定義類的位置.。執行java命令是根據classpath來尋找所需要執行的class文件的位置;而javac命令不能根據classpath來找源文件,只能根據classpath來尋找所需要用到的類。
下面舉例來說明該問題:
假設以下代碼(位置:/src/java/code/a/b/TestT.java):
package a.b;
import c.d.T;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
}
}
package a.b;
import c.d.T;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
}
}
引入的文件(位置:/src/java/code/tmp/c/d/T.java)
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
假設現在編譯兩個文件(目錄:/src/java/),則編譯命令為:javac -classpath code/tmp code/a/b/TestT.java 執行命令為:java -cp code;code/tmp a/b/TestT
如果當前目錄為:/src/java/code/,則編譯命令為:javac -classpath tmp a/b/TestT.java執行命令為:java -cp .;tmp a/b/TestT
假設現在編譯不同磁碟的三個文件(目錄:e:/src/java/),則編譯命令為:
假設以下代碼(位置:e:/src/java/code/a/b/TestT.java):
view plain to clipboardprint?
package a.b;
import c.d.T;
import e.f.T1;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
T1 t1 = new T1();
t1.p();
}
}
package a.b;
import c.d.T;
import e.f.T1;
public class TestT {
public static void main(String[] args) {
T t = new T();
t.p();
T1 t1 = new T1();
t1.p();
}
}
引入的文件1(位置:d:/java/code/tmp/c/d/T.java)
view plain to clipboardprint?
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
package c.d;
public class T {
public void p(){
System.out.println("class:T");
}
}
引入的文件2(位置:c:/code/tmp/e/f/T1.java)
view plain to clipboardprint?
package e.f;
public class T1 {
public void p(){
System.out.println("class:T1");
}
}
package e.f;
public class T1 {
public void p(){
System.out.println("class:T1");
}
}
如果當前目錄為:e:/src/java/
編譯命令為:javac -classpath d:/java/code/tmp;c:/code/tmp code/a/b/TestT.java
執行命令為:java -cp code;d:/java/code/tmp;c:/code/tmp a/b/TestT
說明:javac命令中的classpath必須指定引入類的路徑;同樣java命令中的cp必須引入引入類的class的路徑也需指定執行類的路徑
實例:
package test;
enum T{
HELLO,WORLD,HAA;
}
package test;
import static test.T.*;
public class A {
private T t;
public A(T t){
this.t = t;
}
public static void main(String[] args){
System.out.println(new A(HELLO));
System.out.println(new A(HAA));
}
@Override
public String toString(){
return this.t + " ";
}
}
編譯命令:javac -d . T.java
javac -d . A.java
執行命令: java test.A
9. 怎麼在DOS下編譯C語言成為.exe文件啊
裝mingw
將bin目錄添加到
系統變數
運行cmd,輸入gcc
出現
找不到文件的提示就
說明安裝
成功了
命令gcc
用法示例:
編譯:
gcc
-c
main.c
生成
main.o
連接:
gcc
-o
m.exe
main.o
生成m.exe
可執行文件
編譯連接一起來就是
gcc
-o
m.exe
main.c
//適合單文件,不要用於工程中
如果是c++的話
連接要用g++命令
10. 怎麼在DOS下編譯C++程序
VC6隻是一個IDE,可以方便的調用編譯器,鏈接器,頭文件,庫文件,如果編輯和編譯驅動能集成在一起,這樣可以提高開發效率。
對於普通的Win32應用程序,VC6已經默認支持了,而對於驅動程序沒有設定好的工程向導。其實驅動程序也就是一個sys,是通過c語言寫成,所以編譯它理論上沒有問題,只是在實際操作上有點麻煩。
下面就來說明一下各種平台編譯sys驅動的方法(包括64位平台)。
先看32位版本驅動的編譯方法,首先你得准備一些編譯必備工具:
1.要安裝VC6
2.安裝DDK(裝哪個呢?這個問題其實很簡單的,只是很多人不明白,裝DDK當然是越新越好了,越新支持的平台越多,像2000DDK你是絕對編譯不出來64位sys的,因為它沒帶64位的庫和編譯器,所以我們選擇現在最比較新的,2003DDK(WDK也可以),支持的平台很多(AMD64,IA64,2000,XP,2003都支持)。
好了,這下我們的系統已經安裝了最強的開發工具VC6,最新DDK,在VC里編譯各個平台的驅動都沒有問題了!
開始,假設我們的DDK裝在C:\2003DDK目錄,那麼我會發現裡面有很多驅動的例子(安裝的時候全選),我們選擇C:\2003DDK\src\wdm\usb\bulkusb作為我們的實驗範例。
第一步:
打開VC,建立一個Win32 Application工程,然後選擇An empty Project(我用英文版的VC,建議你也換成英文版的),意思就是建立一個空的Win32工程,工程名字就叫bulkusb,點Finish.
第二步:
將C:\2003DDK\src\wdm\usb\bulkusb\sys(這里是驅動代碼,另一個exe里是用戶程序,不管它)里的所有文件拷貝到bulkusb工程目錄下。然後把.h,.c,.rc 導入到VC里對應的目錄裡面去。
第三步:
然後就是開始設置工程選項,把這些代碼編譯成sys了。 要編譯我們需要DDK,所以先要在vc的Tool->Options->Directories里設置一些路徑給VC調用(設置基本原則:要保證下面所有設置的路徑排在前面!)。
設置Include路徑:
C:\2003DDK\INC
C:\2003DDK\INC\CRT
C:\2003DDK\INC\WNET
C:\2003DDK\INC\DDK\WNET
C:\2003DDK\INC\DDK\WDM\WNET
要按這樣的順序添加。注意這里的WNET目錄了嗎?這就是2003最新頭文件,其實選擇wxp或者w2k目錄也是可以的,只是wnet里的頭文件最全,因為系統不斷進步,有些新的api只有新的頭文件里才有定義。當然最好是選擇對應的頭文件來編譯對應系統的驅動,但是我試過用wnet編譯的驅動在2000 下也能用,因為我們一般用不到那些新添加的 api.。
設置lib路徑:
C:\2003DDK\LIB
C:\2003DDK\LIB\CRT\I386
C:\2003DDK\LIB\WNET\I386 //wnet道理和上面一樣
設置Executable File:
C:\2003DDK\BIN\X86 //這就是編譯器的路徑,包含cl.exe,link.exe的目錄,由於我們要編譯32位驅動,所以把這個添加進去,放在第一項。
總的來說,只要設置好Include,Lib和編譯器,編譯什麼文件都沒問題的,你也可以自己嘗試安裝最新的2003SDK,編譯Win32應用程序成64位。
第四步:
開始進入工程設置,先設置C/C++,在Preprocesser definitions里輸入如下字串:
Release下輸入:
_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
Debug下輸入:
_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG
在Code Generation里的Calling convention用__stdcall,(這是驅動程序必須的)
Debug版有個特殊編譯選項 /GZ (注意是大寫的,小寫的不要刪!)刪掉,否則有鏈接錯誤,chkesp鏈接不上什麼的。
第五步:
開始設置Link頁,將輸出文件名改為sys擴展名,
在General的Object/Library moles, 填入驅動所調用到的幾個lib:
ntoskrnl.lib hal.lib usbd.lib wmilib.lib。
然後進入Output在Entry-point symbol:
填DriverEntry
下面就是往Project Options手動增加一些鏈接選項,復制如下進去:
/machine:IX86 /driver /subsystem:native /SECTION:INIT,d /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221
刪除如下選項:
/subsystem:windows
/machine代表目標機器類型,/driver代表驅動,/subsystem:native 也是代表驅動。
OK,大功告成,我們可以編譯32位驅動了!
那麼如果我們要編譯64位驅動呢? 這里大家注意一下,64位有兩種,一個是AMD64,一個是IA64,要選定你的目標平台,目前AMD64平台最為流行。
其實編譯成64位也很簡單,只要把32位的配置稍微改一下就行了,我們以編譯AMD64位驅動為例(你會復制VC的工程Configurations吧,把32位的Relase,Debug各復制一份改名為ReleaseAMD64和DebugAMD64,然後在復製品的基礎上修改):
1.要修改兩個lib路徑:
C:\2003DDK\LIB\CRT\I386改為:C:\2003DDK\LIB\CRT\amd64
C:\2003DDK\LIB\WNET\I386 改為:C:\2003DDK\lib\wnet\amd64
2.修改編譯器路徑:
C:\2003DDK\BIN\X86
改為:
C:\2003DDK\bin\win64\x86\amd64
C:\2003DDK\BIN\X86 //這句也要存在
3.修改C/C++里的Preprocesser definitions為:
ReleaseAMD64下輸入:
_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
DebugAMD64下輸入:
_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG
4.需要修改link頁里的Project Options,手動改一下:將/machine:IX86改為:/machine:amd64
5.理論上到這里設置就OK了,不過還是有一個鏈接錯誤unresolved external symbol __security_cookie ,只要在鏈接的lib里加入bufferoverflowK.lib (為什麼是bufferoverflowK.lib?看這里:http://support.microsoft.com/kb/894573) 就可以了。我修改的工程範例下載:下載地址。
以上的設置大部分都可以保存在VC工程文件(*.dsp)里,除了設置的include路徑,lib路徑和編譯器路徑,這些路徑是全局的,在打開另一些工程也會留下了,就會給編譯應用程序帶來麻煩,還需要一個一個改回去,而目錄切換器就是為了快速切換這些路徑而開發的。