sách gpt4 ai đã đi

LoadImage() trả về NULL và GetLastError() trả về 0

In lại 作者:可可西里 更新时间:2023-11-01 10:08:51 30 4
mua khóa gpt4 Nike

我一直在网上的不同论坛上搜索答案,但似乎没有与我的情况相符的...

我正在使用 Windows 7,VS2010。

我有一个使用定时器来调用任务栏刷新功能的应用程序。在该任务栏函数中包含对 LoadImage() 的调用,该调用从资源文件中获取图标图像,并最终发送给 taskber(使用 shell_notifyicon)。在运行应用程序时,这似乎在前几个小时内工作正常,但突然 LoadImage() 开始失败(它始终是它尝试加载的同一个 .ico 文件)并返回 NULL。我在之后直接插入了一个 GetLastError 调用,但它总是返回 0(表示成功)。图像本身仍然是好的和有效的,我无法解释这一点。

有什么线索吗?非常感谢任何帮助!

这是一个代码片段:

if (ghInst && hwnd)
{
DWORD err;
// Update Tray Icon Here
small_icon=LoadImage(ghInst, MAKEINTRESOURCE(IconId), IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0);
err = GetLastError();
if (!small_icon)
{
LPVOID lpMsgBuf;
//DWORD err = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );

printf("LoadImage FAILED error message: %d %s\n" ,err ,lpMsgBuf);
}

nid.uFlags=NIF_MESSAGE | NIF_ICON | NIF_TIP;
nid.uCallbackMessage=UWM_SYSTRAY;
nid.hIcon=small_icon; /* 16x16 icon */

if (bIconExist)
Shell_NotifyIcon(NIM_MODIFY, &nid);
khác
Shell_NotifyIcon(NIM_ADD, &nid);
}

1 Câu trả lời

我认为问题几乎可以肯定是您泄漏了 GDI 对象并且用完了 GDI 对象句柄。标准的 Windows 任务管理器可以显示您的进程的 GDI 对象计数。

您没有使用 LR_SHARED Gọi LoadImage,因此您phải随后使用 DestroyIcon 释放图标。请参阅 LoadImage 文档的“备注”部分:

http://msdn.microsoft.com/en-us/library/ms648045%28v=VS.85%29.aspx

(顺便说一句,您还应该释放 FormatMessage 分配的字符串。)

关于c - LoadImage() 返回 NULL 和 GetLastError() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242193/

30 4 0
Bài viết được đề xuất: c++ - 创建一个只能在父窗口内拖动的窗口
Bài viết được đề xuất: java - 外部连接到 kubernetes 中的 Mongodb 集群
Bài viết được đề xuất: javascript - 如何同时保存两个相互关联的模型?
Bài viết được đề xuất: windows - Windows 中的 Erlang 和 YAWS 设置
可可西里
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com