gpt4 book ai didi

c++ - 带有 MSVC++ 编译器的 Gdi+ 出现奇怪的 "Native Graphics"运行时错误

转载 作者:可可西里 更新时间:2023-11-01 14:28:05 25 4
gpt4 key购买 nike

好的,直到现在我一直使用 GCC 进行编码,所以我是 MSVC++ 的新手(而且它是错误的)。我用 GDI plus 编译了一个最小的 Win Api 程序。它编译得很好,但几乎一开始就以运行时错误关闭(我认为运行时错误是在调用 WM_PAINT 消息时出现的)。这是我看到的: What I See

我的代码没什么特别的,它只是显示一个矩形。 (当我使用 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,0));
g.DrawRectangle(new Pen(Color(0,0,0)),10,10,100,100);

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

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

最佳答案

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

关于c++ - 带有 MSVC++ 编译器的 Gdi+ 出现奇怪的 "Native Graphics"运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8112576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com