#include<windows.h>LRESULT CALLBACK wndproc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hlnstance,HINSTANCE hprevlnstance,PSTR szcmdline,int iCmdShow)
{
static TCHAR szAppName[] = TEXT("HELLOWIN");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style;
wndclass.lpfnWndProc = wndproc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hlnstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName; RegisterClass(&wndclass);
hwnd = CreateWindow(szAppName,
                TEXT("the Hello Progran"),
                    WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hlnstance,
NULL);
ShowWindow(hwnd,iCmdShow);
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)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
PlaySound(TEXT("HelloWin.wav"),NULL,SND_FILENAME|SND_ASYNC);
return(0);
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("hello,Windows 98!"), -1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return(0);
case WM_DESTROY:
PostQuitMessage(0);
return(0);
}
return DefWindowProc(hwnd,message,wparam,lparam);
}
这个是windows程序设计上第三章的例题,我照抄的,
运行时出现如下错误
--------------------Configuration: HelloWin - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1104: cannot open file "Debug/HelloWin.exe"
Error executing link.exe.如何解决啊

解决方案 »

  1.   

    应该是第一次运行的进程没有被关闭,你用任务管理器将hellowin.exe这个进程关掉看看。
      

  2.   

    1、上次运行由于窗口无效,进程没有关闭。2、这里设置窗口样式有误,导致并没有注册成功!
    wndclass.style = CS_HREDRAW | CS_VREDRAW;下面是修正后的代码:
    #include <windows.h>#pragma comment(lib,"user32.lib")
    #pragma comment(lib,"Gdi32.lib")
    #pragma comment(lib,"Winmm.lib")LRESULT CALLBACK wndproc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hlnstance,HINSTANCE hprevlnstance,PSTR szcmdline,int iCmdShow)
    {
        static TCHAR szAppName[] = TEXT("HELLOWIN");
        HWND          hwnd;
        MSG           msg;
        WNDCLASS      wndclass;
        
        wndclass.style = CS_HREDRAW | CS_VREDRAW;
        wndclass.lpfnWndProc = wndproc;
        wndclass.cbClsExtra = 0;
        wndclass.cbWndExtra = 0;
        wndclass.hInstance = hlnstance;
        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("窗口注册失败!"),NULL,NULL);
            return FALSE; 
        }
        
        hwnd = CreateWindow(szAppName,
                            TEXT("the Hello Progran"),
                            WS_OVERLAPPEDWINDOW,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            NULL,
                            NULL,
                            hlnstance,
                            NULL);
        ShowWindow(hwnd,SW_SHOWNORMAL);
        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)
    {
        HDC         hdc;
        PAINTSTRUCT ps;
        RECT        rect;
        switch(message)
        {
        case WM_CREATE:
            PlaySound(TEXT("HelloWin.wav"),NULL,SND_FILENAME|SND_ASYNC);
            return(0);
        case WM_PAINT:
            hdc = BeginPaint(hwnd,&ps);
            GetClientRect(hwnd,&rect);
            DrawText(hdc,TEXT("hello,Windows 98!"), -1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            EndPaint(hwnd,&ps);
            return(0);
        case WM_DESTROY:
            PostQuitMessage(0);
            return(0);
        }
        return DefWindowProc(hwnd,message,wparam,lparam);
    }
      

  3.   

    这个应该是exe文件还在执行哦,同意沙发