编译通过,可是执行时不显示:
   Compiling resources...
Compiling...
liu.cpp
Linking...
LINK : fatal error LNK1104: cannot open file "Debug/liu.exe"
Error executing link.exe.文件如下:
*******************resource.h************
#define IDM_NEW                         10
#define IDM_OPEN                        11
#define IDM_CLOSE                       12
#define IDM_SAVE                       13
#define IDM_SAVEAS                      14
#define IDM_ADDPRINTMENU                15
#define IDM_DELPRINTMENU                16
#define IDM_EXIT                         17
#define IDM_CUT                         18
#define IDM_COPY                        19
#define IDM_PASTE                       20
#define IDM_DELETE                      21
#define IDM_HELP                        22
#define IDM_LINE                          23
#define IDM_RECT                         24
#define IDM_RRECT                        25******************andy.rc**************
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS 
#define APSTUDIO_HIDDEN_SYMBOLS 
#include "windows.h" 
#undef APSTUDIO_HIDDEN_SYMBOLS 
#undef APSTUDIO_READONLY_SYMBOLS 
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) 
#ifdef _WIN32 
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED 
#pragma code_page(936) 
#endif //_WIN32
MAINMENU MENU DISCARDABLE 
BEGIN
    POPUP "文件(&F)"
  BEGIN
      MENUITEM "新建(&N)\t Ctrl+N",      IDM_NEW
      MENUITEM "打开(&0)\t Ctrl+0",      IDM_OPEN
      MENUITEM "关闭(&C)",      IDM_CLOSE
      MENUITEM SEPARATOR
      MENUITEM "保存(&S)\t Ctrl+S",      IDM_SAVE
      MENUITEM "另存为(&A)",      IDM_SAVEAS
      MENUITEM SEPARATOR
      MENUITEM "创建统计计算菜单(&P)\t Ctrl+P",      IDM_ADDPRINTMENU
      MENUITEM "删除统计计算菜单(&D)\t Ctrl+D",      IDM_DELPRINTMENU,GRAYED
      MENUITEM SEPARATOR
      MENUITEM "退出(&X)\t Ctrl+X",      IDM_EXIT    
   END
  POPUP "编辑(&E)"
    BEGIN
      MENUITEM "剪切(&T)\t Ctrl+X",      IDM_CUT
      MENUITEM "复制(&C)\t Ctrl+C",      IDM_COPY
      MENUITEM "粘贴(&P)\t Ctrl+V",      IDM_PASTE
      MENUITEM "删除(&D)\t Del",      IDM_DELETE
   END
      MENUITEM "帮助(&H)",      IDM_HELP
 END
 MENU ACCELERATORS MOVEABLE PURE
 BEGIN
  "^N",    IDM_NEW,     ASCII
  "^O",    IDM_OPEN,     ASCII
  "^S",    IDM_SAVE,     ASCII
  "^P",    IDM_ADDPRINTMENU,     ASCII
  "^D",    IDM_DELPRINTMENU,     ASCII
  "^X",    IDM_CUT,     ASCII
  "^C",    IDM_COPY,     ASCII
  "^V",    IDM_PASTE,     ASCII
  VK_DELETE,  IDM_DELETE,  VIRTKEY
END
#endif*******************liu.cpp**************
#include <windows.h>#include "resource.h"
HMENU hmenu,hprintmenu;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                    PSTR szCmdLine, int nCmdShow){          HWND         hwnd ;     MSG          msg ;
 HACCEL       hAccel;     WNDCLASS     wndclass ;
 char lpszMenuName[]="Menu";
 char lpszClassName[]="菜单";
 char lpszTitle[]="My_Menu_Examle";      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  = lpszMenuName ;//在窗口类中定义菜单的字符串名     wndclass.lpszClassName = lpszClassName ; 
     if (!RegisterClass (&wndclass))     {          MessageBeep(0);
          return FALSE ;     }     hwnd = CreateWindow (lpszMenuName,                  // window class name                          lpszTitle, // window caption                          WS_OVERLAPPEDWINDOW,        // window style                          CW_USEDEFAULT,              // initial x position                          CW_USEDEFAULT,              // initial y position                          CW_USEDEFAULT,              // initial x size                          CW_USEDEFAULT,              // initial y size                          NULL,                       // parent window handle                          NULL,                       // window menu handle                          hInstance,                  // program instance handle                          NULL) ;                     // creation parameters          ShowWindow (hwnd, nCmdShow) ;     UpdateWindow (hwnd) ;  hAccel=LoadAccelerators(hInstance,lpszMenuName);          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_COMMAND:        
        switch(LOWORD(wParam))
         
  
  
  
  
  
  {
  
  
 case IDM_NEW:
 break;
 case IDM_OPEN:
 break;
 case IDM_SAVE:
 break;
 case IDM_SAVEAS:
 break;
 case IDM_CLOSE:
 break;
 case IDM_ADDPRINTMENU:
 hmenu=GetMenu(hwnd);
 hprintmenu=CreateMenu();
 AppendMenu(hprintmenu,MF_ENABLED,IDM_LINE,"求和");
 AppendMenu(hprintmenu,MF_ENABLED,IDM_RECT,"方差");
 AppendMenu(hprintmenu,MF_ENABLED,IDM_RRECT,"平均值");
         InsertMenu(hmenu,2,MF_POPUP|MF_BYPOSITION,(UINT)hprintmenu,"统计计算(&C)");
 EnableMenuItem(hmenu,IDM_ADDPRINTMENU,MF_GRAYED);
 EnableMenuItem(hmenu,IDM_DELPRINTMENU,MF_ENABLED);
 DrawMenuBar(hwnd);
 break;  case IDM_DELPRINTMENU:
 DeleteMenu(hmenu,2,MF_BYPOSITION);
 EnableMenuItem(hmenu,IDM_ADDPRINTMENU,MF_GRAYED);
 EnableMenuItem(hmenu,IDM_DELPRINTMENU,MF_ENABLED);
 DrawMenuBar(hwnd);
 break;
 case IDM_EXIT:
 SendMessage(hwnd,WM_DESTROY,0,0);
 break;
 case IDM_CUT:
 break;
 case IDM_COPY:
 break;
 case IDM_PASTE:
 break;
 case IDM_DELETE:
 break;
  }
    break;
 case WM_DESTROY:
 PostQuitMessage(0);
 break;
 default:
 return DefWindowProc(hwnd,message,wParam,lParam);
 }
 return 0;
}

解决方案 »

  1.   

    用这个试试:
    hwnd = CreateWindow (lpszMenuName,                  // window class name                          lpszTitle, // window caption                          WS_OVERLAPPEDWINDOW | WS_VISIBLE,        // window style,我在这里加了这个属性                          CW_USEDEFAULT,              // initial x position                          CW_USEDEFAULT,              // initial y position                          CW_USEDEFAULT,              // initial x size                          CW_USEDEFAULT,              // initial y size                          NULL,                       // parent window handle                          NULL,                       // window menu handle                          hInstance,                  // program instance handle                          NULL) ;                     // creation parametersShowWindow一句可不要
      

  2.   

    用这样试试:
    hwnd = CreateWindow (lpszMenuName,
                         lpszTitle, // window caption
                         WS_OVERLAPPEDWINDOW |WS_VISIBLE
                         .....其实你的程序已经运行了,那个连接错误已经说明了!
    只是窗体没显示出来而已
      

  3.   

    如果你的程序没有问题的话,可以试试把整个Debug子目录删掉,然后重新build一下看看。
      

  4.   

    这里有点儿问题
    hwnd = CreateWindow (lpszMenuName,   

    把lpszMenuName 改成 pszClassName看样子你的程序已经运行起来了,不会结束,就重新启动一次吧
    然后再按我上面说的改
      

  5.   

    我将liu.exe结束任务后仍无法显示这个程序!
      请帮帮我
      

  6.   

    ahr(电磁波) 
     谢谢!真是你说的那样
     同样谢谢大家