The First Time
Win32ぷろぐらみんぐ このコードだけでWindowsのプログラムができちゃう
file:main.cpp
#include <windows.h> #include <studio.h> int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdParam, int nCmdShow) { MessageBox( NULL, "HelloWorld", "debug", MB_OK); return 0; } int main(int argc, char *argv) { printf("Hello World\n"); return 0; }できあがったソースを コンパイル-リンクしてみます
C:\>cl main.cpp /D WIN32 /D _DEBUG /D _WINDOWS /D _MBCS /c うまくいけば main.obj ができあがります。 次にリンク C:\>link main.obj /SUBSYSTEM:WINDOWS /MACHINE:X86 user32.lib
問題なければ main.exe ができあがります。 Memo:MessageBoxを使う場合は user32.lib を 使うことを linkerに伝える main.exeを起動すると メッセージボックスが表示されます OKを押すと終了します。 次に 下のように SUBSYSTEMの部分をCONSOLEとしてみましょう C:\link main.obj /SUBSYSTEM:CONSOLE /MACHINE:X86 user32.lib main.exeを起動すると 今度は コンソールプログラムのエントリmainが呼ばれます
file:Makefile
参考までに 下記は Makefileの例 SRC = main.cpp OBJ = main.obj PROGRAM = main.exe INCLUDE = $(INCLUDE);※必要なものがあれば追加 LIB = $(LIB);※必要なものがあれば追加 LIBS = kernel32.lib user32.lib gdi32.lib ※その他必要なものがあれば追加 CC = cl L = link $(PROGRAM) : $(OBJ) $(L) $(OBJ) /SUBSYSTEM:WINDOWS /MACHINE:X86 $(LIBS) /OUT:$(PROGRAM) ※実際には一行、行頭はタブ $(OBJ) : $CC) /D WIN32 /D _WINDOWS /D _DEBUG /D _MBCS /c $(SRC) ※実際には一行、行頭はタブ clean: del $(PROGRAM) $(OBJ) C:\> nmake もしくは nmake /F Makefileで コンパイルとリンクが行われます