晨暮326 2022-03-06 09:41 采纳率: 50%
浏览 22
已结题

自学win32编程,为什么运行不了呀

问题遇到的现象和发生背景

高中打过c++的竞赛,算是有点基础,大学跟着浅墨的书学win32编程,东西都理解了,但是照搬代码上去运行不了是为什么啊

就是一个简单的窗口

问题相关代码,请勿粘贴截图

#include<windows.h>
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) //窗口过程函数 判断信息
//先定义函数,最后写

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
//设计窗口
WNDCLASSEX wndClass = {0}; //定义了一个窗口
wndClass.cbSize=sizeof(WNDCLASSEX);
wndClass.style=CS_HREDRAW|CS_VREDRAW; //窗口样式 p59
wndClass.lpfnWndProc = WndProc; //过程函数指针
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0;
wndClass.hInstance=hInstance;
//wndClass.hIcon = (HICON)::LoadImage(NULL,L"icon,ico",IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);//程序图标设置
wndClass.hCursor = LoadCursor(NULL,IDC_ARROW); // 设置光标
wndClass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH); //设置背景颜色
wndClass.lpszMenuName =NULL;
wndClass.lpszClassName=L"ForTheDream";

//注册窗口
if( !RegisterClassEx( &wndClass ))//注册失败直接结束
    return -1;
//创建窗口
HWND hWnd = CreateWindow(L"ForTheDream",L"ForTheDream",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,800,600,NULL,NULL,hInstance,NULL);
//移动窗口p66
//显示窗口
ShowWindow( hWnd , nShowCmd );
//更新窗口
UpdateWindow(hWnd);
//5.处理消息
MSG msg={0};
while (msg.message!= WM_QUIT)
{
    if (PeekMessage(&msg,0, NULL,NULL, PM_REMOVE)){
        TranslateMessage(&msg); 
        DispatchMessage(&msg);//交给wndproc进行处理
    }
}

//注销窗口
UnregisterClass( L"ForTheDream", wndClass.hInstance);

return 0;

}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
switch( message )
{
case WM_PAINT:
ValidateRect (hwnd, NULL);
break;
case WM_KEYDOWN:
if ( wParam == VK_ESCAPE)
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage( 0 );
break;
default:
return DefWindowProc( hwnd, message, wParam, lParam ); //调用默认的窗口
return 0; //正常退出
}

运行结果及报错内容

img

运行的话会显示系统找不到指定文件
还有就是这一条
1>c:\users\lenovo\desktop\for the dream\第二次\第二次\main.cpp(62): fatal error C1075: 与左侧的 大括号“{”(位于“c:\users\lenovo\desktop\for the dream\第二次\第二次\main.cpp(45)”)匹配之前遇到文件结束
别的就没了

我的解答思路和尝试过的方法

我就是完全照搬,除了一些字符串的内容不一样,其他的都是一样的,图标那一行因为没弄文件我也注释掉了
难道是我的vs版本太低了?用的是学校给的2010

我想要达到的结果

就是想正常运行出个窗口来
如果有人愿意带带我那是最好不过了,或者给个交流群也好,学习中出了好多问题都不知道问谁。。

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-06 09:54
    关注

    编译都没通过啊
    fatal error C1075: 与左侧的 大括号“{”(位于“c:\users\lenovo\desktop\for the dream\第二次\第二次\main.cpp(45)”)匹配之前遇到文件结束
    这是编译错误,得解决编译问题以后才会产生exe文件
    下面这个函数在return 0前少了一个大括号,switch语句代码块只有半个大括号

    LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
    switch( message )
    {
    case WM_PAINT:
    ValidateRect (hwnd, NULL);
    break;
    case WM_KEYDOWN:
    if ( wParam == VK_ESCAPE)
    DestroyWindow(hwnd);
    break;
    case WM_DESTROY:
    PostQuitMessage( 0 );
    break;
    default:
    return DefWindowProc( hwnd, message, wParam, lParam ); //调用默认的窗口
    }
    return 0; //正常退出
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 修改了问题 3月6日
  • 创建了问题 3月6日

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?