#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
 HINSTANCE hPreInstance,
 LPSTR lpCmdLine,
 int nCmdShow)
{ static TCHAR szAppName[] = TEXT("Hello Window!");
HWND hwnd;
MSG msg;
WNDCLASS wndClass; wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance;
wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = szAppName; if(!RegisterClass(&wndClass))
{
MessageBox(NULL, TEXT("Error!"), szAppName, MB_ICONERROR);
return 0;
} hwnd = CreateWindow(
szAppName,
TEXT("The Hello Program!"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL); ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd); while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
我是用记事本写的,然后是用Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86进行编译:
cl 024.c user32.lib gdi32.lib刚开始把return DefWindowProc(hwnd, message, wParam, lParam);这行代码写成了:
return DefWindowProc(hwnd, message, lParam, wParam);导致代码一直无法显示窗口。
反复的查资料也没有发现程序有错,一直到现在才发现原来是这句出错了,由于我的C语言基础也不好(C语言学习还不到两周),有一点我不明白,wParam为 unsigned int,lParam 为 long,为什么编译不提示呢?望各位高手指点,谢谢!

解决方案 »

  1.   

    楼主加油,不错啊不过用记事本写代码,你牛很辛苦的,以后用vc写吧,呵呵“有一点我不明白,wParam为 unsigned int,lParam 为 long,为什么编译不提示呢?”这句我没看懂,为什么要提示??
      

  2.   

    以后用vc写吧准备向绿色软件进军,所以想尽量回避vc。_____________________________________________________________________________________
    “有一点我不明白,wParam为 unsigned int,lParam 为 long,为什么编译不提示呢?”这句我没看懂,为什么要提示??我写反了啊!
      

  3.   

    unsigned int 和long都是4字节长,隐式转换无负作用,不算错误。
      

  4.   

    不需要setup安装的软件,不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。 
      

  5.   

    就是啊!我的想法也是除了windows最基本的几个dll文件(user32,gdi32等)之外,其余的如果要用到都拷贝到自己的目录下。这样不行吗?望高手继续不吝指点!谢谢!