加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Gdi与MSVC编译器得到奇怪的“本机图形”运行时错误

发布时间:2020-12-16 06:57:58 所属栏目:百科 来源:网络整理
导读:好的,直到现在我总是用GCC编码,所以我是MSVC的新手(这是错误的).我用GDI plus编译了一个最小的Win Api程序.它编译得很好,但几乎在启动时就会出现运行时错误(我认为在调用WM_PAINT消息时会出现运行时错误).这是我看到的: ? 我的代码没什么特别的,只是显示一
好的,直到现在我总是用GCC编码,所以我是MSVC的新手(这是错误的).我用GDI plus编译了一个最小的Win Api程序.它编译得很好,但几乎在启动时就会出现运行时错误(我认为在调用WM_PAINT消息时会出现运行时错误).这是我看到的:
?

我的代码没什么特别的,只是显示一个矩形. (当我使用GDI时它工作正常,但不适用于GDI).

我的代码:

HDC hdc = GetDC(hwnd);

InvalidateRect(hwnd,NULL,FALSE);

ULONG_PTR token;
GdiplusStartupInput inp;
GdiplusStartup(&token,&inp,0);

Graphics g(hdc);
g.Clear(Color(0,0));
g.DrawRectangle(new Pen(Color(0,0)),10,100,100);

GdiplusShutdown(token);
ValidateRect(hwnd,NULL);

通过调试我发现运行时错误几乎就是Graphics g(hdc);构造函数被调用.我在Google等上找不到任何东西.我完全迷失了.有帮助吗?

解决方法

WinAPI函数总是以这种或那种方式表示成功.您需要检查GetDC是否返回了有效句柄.请参阅 Return value section of GetDC.输出中的访问冲突也指向某处的无效指针.如果DC有效,请检查其他所有内容.确保传递指向需要地址的指针等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读