- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在网上的不同论坛上搜索答案,但似乎没有与我的情况相符的...
我正在使用 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/
Theo tình hình hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời được hỗ trợ bằng sự kiện, tài liệu tham khảo hoặc chuyên môn, nhưng câu hỏi này có thể gây ra tranh luận, tranh cãi, thăm dò ý kiến hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Trong khi viết mã, tôi tự hỏi mình câu hỏi này: Liệu cách này có nhanh hơn: if(false) return true; else return false; so với cách này không? nếu(sai) trả về đúng; trả về
Làm thế nào để thực hiện "trả về" trong điều kiện logic? Điều này hữu ích trong những tình huống như thế này: checkConfig() || return false; var iNeedThis=doSomething() || return false
Đây là bản demo biểu thức chính quy của tôi Như câu hỏi đã nói: Nếu số đầu tiên là 1 thì trả về 1 Nhưng nếu là 145 thì trả về 145 Nhưng nếu là 133 thì trả về 133 Dữ liệu mẫu a: K'8134567 K'81345678
Khi xem qua các câu đố và câu trả lời trong phần Hỏi & Đáp của Code Golf, tôi đã tìm thấy giải pháp này cho câu trả lời tham chiếu phương pháp dài nhất và khó hiểu nhất trả về 1, int foo(void) { return! 0; } int bar(
Tôi muốn trả về JSON bên dưới. { "name": "jackie" } người đưa thư báo lỗi cho tôi. Mô tả Người mới bắt đầu và không mong đợi tham gia Spring Boot ở đây. 1 ngày tuổi. Có một cách đúng đắn để
Miễn là "is" trả về True thì "==" có trả về True không? Trong [101]: np.NAN là np.nan là np.NaN Out[101]: Đúng Trong [102]: np.NAN
Tôi cần biết thông tin chi tiết về tất cả sinh viên đang ở phòng số 6 hoặc 7 hoặc không ở phòng nào cả. Nếu họ ở trong những phòng khác thì nói một cách đơn giản, tôi không muốn có bản ghi đó. Sơ đồ của tôi là: students(roll_no, name,class,.
Tôi có một biểu mẫu mà tôi gửi tới php để chèn vào cơ sở dữ liệu mysql thông qua ajax. Mọi thứ đều ổn, php trả về giá trị "true", nhưng trong ajax thì lại hiển thị thông báo false. Ở đây bạn có thể xem mã php:
Tôi đang gặp phải một vấn đề so sánh giá trị rất lạ và không thể giải thích được trong Kotlin. Mã sau đây in ra dữ liệu giả lớp Foo ( val a: Byte ) fun main() { val NUM
Lưu ý rằng điều này không dành riêng cho Protractor. Vấn đề là Angular 2 sử dụng dịch vụ Testability tích hợp có tên là Protractor. Thước đo góc gọi Testabil
Trong cửa sổ gỡ lỗi, tất cả các biểu thức sau đều trả về 1. Ứng dụng.WorksheetFunction.CountA(Cells(4 + (i - 1) * rows_per_record, 28) & "
Tôi đang sử dụng jsonplaceholder (http://jsonplaceholder.typicode.com/) cục bộ. Tôi đang thử nghiệm các cuộc gọi GET và POST của mình thông qua extjs rest proxy
Sau đây là đoạn mã (đã sửa đổi) mà Postman cung cấp để gọi trang của tôi thành công. var client = new RestClient("http://sub.example.com/wp-json/wp/v2
Câu hỏi này đã có câu trả lời ở đây: Làm gì với các vấn đề mysqli? Các lỗi như mysqli_fetch_array(): Đối số #1 phải
Tôi đoán là tôi hơi kém hiểu biết về đối số dòng lệnh C. Tôi đã xem lại một số mã cũ của mình nhưng dù là phiên bản nào thì nó vẫn bị lỗi phân đoạn. Cách chạy nó là ./foo -n num (trong đó num là số do người dùng nhập vào dòng lệnh) nhưng bằng cách nào đó nó không hoạt động
Tôi đã viết một lớp để xử lý các kết nối đường ống được đặt tên và nếu tôi tạo một thể hiện, đóng nó lại, sau đó thử tạo một thể hiện khác, gọi CreateFile() trả về INVALID_HANDLE_VALUE và GetLastError
Mặc dù is_writable() trả về giá trị true nhưng tôi vẫn không thể ghi vào tệp. Tất nhiên, tập tin đó tồn tại và có thể đọc được. Đây là mã: $file = "data"; echo file_get_contents($file
Biến $response trong đoạn mã sau là NULL, mặc dù nó phải là giá trị của yêu cầu SOAP. (Danh sách thủy triều). Khi tôi gọi $client->__getLastResponse() tôi nhận được từ dịch vụ SOAP
Tôi đã tìm kiếm câu trả lời trên nhiều diễn đàn trực tuyến nhưng có vẻ như không có câu trả lời nào phù hợp với tình huống của tôi... Tôi đang sử dụng Windows 7, VS2010. Tôi có một ứng dụng sử dụng bộ đếm thời gian để gọi chức năng làm mới thanh tác vụ. Chức năng thanh tác vụ chứa lệnh gọi đến LoadI
Tôi là một lập trình viên xuất sắc, rất giỏi!