c++使用网上的代码报错 - 爱问答

(爱问答)

c++使用网上的代码报错

c++使用网上的代码报错网上的代码,但报错
全部代码为
#include <windows.h> 
 
  // Global variable 
 
  HINSTANCE hinst; 
 
  // Function prototypes. 
 
  int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int); 
  InitApplication(HINSTANCE); 
  InitInstance(HINSTANCE, int); 
  LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); 
 
  // Application entry point. 
 
  int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, 
      LPSTR lpCmdLine, int nCmdShow) 
  { 
      MSG msg; 
 
      if (!InitApplication(hinstance)) 
          return FALSE; 
 
      if (!InitInstance(hinstance, nCmdShow)) 
          return FALSE; 
 
      BOOL fGotMessage;
      while ((fGotMessage = GetMessage(&msg, (HWND) NULL, 0, 0)) != 0 && fGotMessage != -1) 
      { 
          TranslateMessage(&msg); 
          DispatchMessage(&msg); 
      } 
      return msg.wParam; 
          UNREFERENCED_PARAMETER(lpCmdLine); 
  } 
 
  BOOL InitApplication(HINSTANCE hinstance) 
  { 
      WNDCLASSEX wcx; 
 
      // Fill in the window class structure with parameters 
      // that describe the main window. 
 
      wcx.cbSize = sizeof(wcx);          // size of structure 
      wcx.style = CS_HREDRAW | 
          CS_VREDRAW;                    // redraw if size changes 
      wcx.lpfnWndProc = MainWndProc;     // points to window procedure 
      wcx.cbClsExtra = 0;                // no extra class memory 
      wcx.cbWndExtra = 0;                // no extra window memory 
      wcx.hInstance = hinstance;         // handle to instance 
      wcx.hIcon = LoadIcon(NULL, 
          IDI_APPLICATION);              // predefined app. icon 
      wcx.hCursor = LoadCursor(NULL, 
          IDC_ARROW);                    // predefined arrow 
      wcx.hbrBackground = GetStockObject( 
          WHITE_BRUSH);                  // white background brush 
      wcx.lpszMenuName =  "MainMenu";    // name of menu resource 
      wcx.lpszClassName = "MainWClass";  // name of window class 
      wcx.hIconSm = LoadImage(hinstance, // small class icon 
          MAKEINTRESOURCE(5),
          IMAGE_ICON, 
          GetSystemMetrics(SM_CXSMICON), 
          GetSystemMetrics(SM_CYSMICON), 
          LR_DEFAULTCOLOR); 
 
      // Register the window class. 
 
      return RegisterClassEx(&wcx); 
  } 
 
  BOOL InitInstance(HINSTANCE hinstance, int nCmdShow) 
  { 
      HWND hwnd; 
 
      // Save the application-instance handle. 
 
      hinst = hinstance; 
 
      // Create the main window. 
 
      hwnd = CreateWindow( 
          "MainWClass",        // name of window class 
          "Sample",            // title-bar string 
          WS_OVERLAPPEDWINDOW, // top-level window 
          CW_USEDEFAULT,       // default horizontal position 
          CW_USEDEFAULT,       // default vertical position 
          CW_USEDEFAULT,       // default width 
          CW_USEDEFAULT,       // default height 
          (HWND) NULL,         // no owner window 
          (HMENU) NULL,        // use class menu 
          hinstance,           // handle to application instance 
          (LPVOID) NULL);      // no window-creation data 
 
      if (!hwnd) 
          return FALSE; 
 
      // Show the window and send a WM_PAINT message to the window 
      // procedure. 
 
      ShowWindow(hwnd, nCmdShow); 
      UpdateWindow(hwnd); 
      return TRUE; 
 
  } 
为什么会报错,帮忙看看

首先,网上的程序90%以上都有问题的,主要是因为大多编写者只是在他自己的环境测试了,且又不是按标准写的。

如你的错,估计是因为用了古老淘汰的非标准编译器(如vc++6),C++标准规定函数声明必须有返回值,所以你改

 InitApplication(HINSTANCE);
 InitInstance(HINSTANCE, int);

BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);

就可以了

另外,你的

 wcx.hbrBackground =GetStockObject(
         WHITE_BRUSH);                  // white background brush

    wcx.hIconSm = LoadImage(hinstance, // small class icon

也要加强制转换,分别改为

 wcx.hbrBackground =(HBRUSH) GetStockObject(
         WHITE_BRUSH);                  // white background brush

wcx.hIconSm = (HICON) LoadImage(hinstance, // small class icon

就可以了

最后,上面的程序用纯C编译器,也是不会报错的(一般将文件后缀改为.c即可)


下一篇:excel获取指定单元格上方第一个非空单元格内容的公式

上一篇:为什么全网都在劝你学Python而不是c,c++?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?