>>259
以下のコードをa.cとa.rcというファイル名で保存して、
rc a.rc, cl a.c a.res でコンパイルすれば2048バイトになる。
9x系で動作しなくていいなら、cl /O2 a.c a.res /link /align:16
で1056バイトになる。

#include <windows.h>
#define IDD_DIALOG 1
#ifdef RC_INVOKED
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
IDD_DIALOG DIALOGEX 0, 0, 87, 79
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
 DEFPUSHBUTTON "OK",IDOK,27,53,50,14,NOT WS_TABSTOP
END
#else
BOOL CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
 switch (uMsg){
 case WM_INITDIALOG:
  return 1;
 case WM_COMMAND:
  if (wParam == MAKEWPARAM(IDOK, BN_CLICKED))
   EndDialog(hWnd, IDOK);
  return TRUE;
 default:
  return FALSE;
 }
}
void Startup(){
 DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
 ExitProcess(0);
}
#pragma comment(linker, "/subsystem:windows /entry:Startup /merge:.rdata=.text")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#endif