回 帖 发 新 帖 刷新版面

主题:关于第二次编译、构件的问题

以下程序经过编译 构件 执行,成功出现了一个窗口.关闭这个窗口,再次经过编译,到了构件结束时出现了以下错误:
Linking...
LINK : fatal error LNK1168: cannot open Debug/wind.exe for writing
Error executing link.exe.

wind.exe - 1 error(s), 0 warning(s)
并且删除不了Debug文件夹中程序生成的wind.exe文件.这是怎么回事啊?

#include<windows.h>
LRESULT CALLBACK    WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
    {
      
        
       return (DefWindowProc(hwnd,msg,wparam,lparam));
   }


int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{MSG msg;
WNDCLASSEX wex;
  

wex.cbSize=sizeof(WNDCLASSEX); //指定以字节为单位的结构大小(始终都是用 sizeof(WNDCLASSEX))
    wex.style=CS_HREDRAW|CS_VREDRAW;//窗口风格
    wex.lpfnWndProc=WndProc;//指向CALLBACK的指针变量
    wex.cbClsExtra=0;//类的额外保留消息(通常为0)
    wex.cbWndExtra=0;//同上以个差不多(通常也为0)
    wex.hInstance=hInstance;//指向窗口过程实例句柄(句柄是窗口的标识符)
    wex.hIcon=LoadIcon(NULL,IDI_WINLOGO);//图标
    wex.hCursor=LoadCursor(NULL,IDC_ARROW);//光标
    wex.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//背景色
    wex.lpszMenuName=NULL;//菜单名称
    wex.lpszClassName="BenClass";//该窗口类的名字
    wex.hIconSm=LoadIcon(hInstance,IDI_WINLOGO);//小图标
    RegisterClassEx(&wex);//注册该窗口类

    
    /////////////////////////////////////////////////////////
    //
    //
    //                  以下是建立窗口
    //
    //
    /////////////////////////////////////////////////////////
    HWND hwnd;
    if(!(hwnd=CreateWindowEx(NULL,//扩充的窗口风格(不需要),
        "BenClass",//窗口类的名字
        "Ben's Window",//窗口标题
        WS_OVERLAPPEDWINDOW,//窗口风格
        CW_USEDEFAULT,0,//设置x,y值(此处是用系统的初始值)
        CW_USEDEFAULT,0,//设置w,h值(此处是用系统的初始值)
        NULL,//指向父系窗口
        NULL,//窗口上的菜单句柄(该窗口无菜单)
        hInstance,//winmain()的实例
        NULL)))//没什么用的
        return (0);
        ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

回复列表 (共4个回复)

沙发

修改你的 WndProc 函数。

处理 WM_DESTROY 消息

case WM_DESTROY:
    PostQuitMessage(0);
    break;

板凳

我改了一下但是还有问题
程序如下:
#include<windows.h>
#include<stdafx.h>
LRESULT CALLBACK    WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
    {switch(message)
{            case WM_DESTORY:PostQuitMessage(0);break;
    
            default: return DefWindowProc(hwnd,message,wparam,lparam);}
  return 0; }


int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{MSG msg;
WNDCLASSEX wex;
  

wex.cbSize=sizeof(WNDCLASSEX); //指定以字节为单位的结构大小(始终都是用 sizeof(WNDCLASSEX))
    wex.style=CS_HREDRAW|CS_VREDRAW;//窗口风格
    wex.lpfnWndProc=WndProc;//指向CALLBACK的指针变量
    wex.cbClsExtra=0;//类的额外保留消息(通常为0)
    wex.cbWndExtra=0;//同上以个差不多(通常也为0)
    wex.hInstance=hInstance;//指向窗口过程实例句柄(句柄是窗口的标识符)
    wex.hIcon=LoadIcon(NULL,IDI_WINLOGO);//图标
    wex.hCursor=LoadCursor(NULL,IDC_ARROW);//光标
    wex.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//背景色
    wex.lpszMenuName=NULL;//菜单名称
    wex.lpszClassName="BenClass";//该窗口类的名字
    wex.hIconSm=LoadIcon(hInstance,IDI_WINLOGO);//小图标
    RegisterClassEx(&wex);//注册该窗口类

    
    /////////////////////////////////////////////////////////
    //
    //
    //                  以下是建立窗口
    //
    //
    /////////////////////////////////////////////////////////
    HWND hwnd;
    if(!(hwnd=CreateWindowEx(NULL,//扩充的窗口风格(不需要),
        "BenClass",//窗口类的名字
        "Ben's Window",//窗口标题
        WS_OVERLAPPEDWINDOW,//窗口风格
        CW_USEDEFAULT,0,//设置x,y值(此处是用系统的初始值)
        CW_USEDEFAULT,0,//设置w,h值(此处是用系统的初始值)
        NULL,//指向父系窗口
        NULL,//窗口上的菜单句柄(该窗口无菜单)
        hInstance,//winmain()的实例
        NULL)))//没什么用的
        return (0);
        ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

3 楼

打开Task Manager,把wind.exe杀了

4 楼

没别的办法了吗?我只想知道程序哪里有错?下面是错误代码:
Compiling...
wind.cpp
c:\documents and settings\administrator\my documents\wind\wind.cpp(3) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe.

wind.obj - 1 error(s), 0 warning(s)
提示说没有stdafx.h,难道VC中没有这个文件吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册