//題目:怎樣使用 visual c++ 編譯出只有 1536 位元組的視窗程式
//這些技巧都是dreamtheater老大哥告我的……
//編譯出來後,檔案大小為: 1536 位元組
//預處理
#include
#include "stdafx.h"
//使用了下面的預處理,編譯連線時必須是 release 方式,否則不能通過
//自定義程式入口,如果要優化,推薦使用這個
//vc 6裡面也有類似的設定,但具體不記得了
//專案屬性的其它設定可以仔細看看,其它優化也都在這裡可以設定
#pragma comment(linker, "/entry:entrypoint")
//下面是調整段對齊,預設是 4k,在 win98 下能更快地裝入 pe 檔案,但會增加 pe 檔案的大小
//下面這一行在這裡好像會說是「無效的指令」什麼的,故在這裡也注釋掉了,也許是段太小的原因吧。
//#pragma comment(linker, "/opt:nowin98")
//下面的優化是段合併,不推薦使用,在很多程式裡也許也許不能使用
#pragma comment(linker, "/section:minipe,") //建立自定義的 minipe section
#pragma comment(linker, "/merge:.data=minipe") //合併.data section 到 minipe section
#pragma comment(linker, "/merge:.text=minipe") //合併.text section 到 minipe section
#pragma comment(linker, "/merge:.rdata=minipe") //合併.rdata section 到 minipe section
//全域性變數
hwnd g_hwnd; //主視窗控制代碼,一般程式中經常用到此變數,故使用全域性變數
hinstance g_hinst; //應用程式程序控制代碼,一般程式中經常用到此變數,故使用全域性變數
//函式宣告
lresult callback windowproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam);
int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int icmdshow);
//入口函式
//使用我們自己的入口函式,而不用聯結器預設提供的一大堆程式初始化操作的**
//為了在乙個普通的 win32sdk 程式裡能使用這種方法,下面的函式將呼叫 winmain() 函式,並給出相應的引數
void entrypoint()
//主函式
int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int icmdshow)
return((int) **sg.wparam);
}
//主視窗**函式
lresult callback windowproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)
return(0);
}
VC 下編譯出極小的程式
昨天做了個telnet後門程式玩,既然是後門嘛,自然是越小越好.可是我的vc9編譯乙個helloworld都有50k 動態鏈結到msvcrt90.dll倒是小下來了,但是得背上乙個更 的dll 600多k 而這個msvcrt90.dll就是我的vista sp1也不是自帶的.更不便於程式的部署.最後...
實踐VC 編譯器cl編譯C C 的程式
環境 windows上已經安裝了vs2005 1 設定環境變數 目的 在cmd視窗下自動識別cl命令 設定 在 我的電腦 屬性 高階 環境變數裡 include d program files microsoft visual studio 8 vc include lib d program fi...
用VC寫出1k多的程式
請用vc編譯,就可生成乙個1.5kb的程式了 是不是很小呢?2005.4.10 by ken include include pragmacomment linker,opt nowin98 pragmacomment linker,entry kenmain 設定程式入口 pragmacommen...