在什么情况下Win32调用GetMenuItemCount可以返回-1,除了提供一个无效的句柄菜单?GetMenuItemCount返回-1
0
A
回答
3
您可以假设的是GetMenuItemCount在失败时返回-1。
此API调用失败的具体原因未记录 - 即,它们不是已发布合同的一部分。它们是可以随时间变化的实现细节,所以你的代码不能依赖它们。
如果您需要在发生故障时获得更多信息,请根据文档建议致电GetLastError。
+0
我想加入David的说法,假设你通过了一个有效的句柄,“如果这个API调用失败,你完全有权终止这个过程”,但是我不想把言辞放在嘴边。你所说的一切对于合同都是完全正确的,但实际上,这个API不会失败,并且你不需要浪费时间编写一堆复杂的错误处理代码。 –
相关问题
- 1. getyx返回-1 -1
- 2. Socket_read返回'1'..?
- 3. getch返回-1?
- 4. request.contentLength返回-1
- 5. db2_num_rows()返回-1
- 6. PipedInputStream.read()返回-1
- 7. ExecuteNonQuery返回-1
- 8. awk:mktime返回-1
- 9. Indexof()返回-1
- 10. getLastVisiblePosition返回-1
- 11. Popen.poll()返回1
- 12. Random.nextInt(1);只返回1
- 13. 回调函数返回返回($ var&1)?
- 14. C#ObservableCollection.IndexOf(...)返回-1
- 15. Android SQLite返回-1
- 16. Datagrid CurrentRowIndex返回-1?
- 17. jquery index()返回-1
- 18. 确实返回1
- 19. 的SQLBindParameter返回-1
- 20. LEX- yylineno返回1
- 21. 差异返回1
- 22. 值返回1.#INF000
- 23. Android Cursor.getColumnIndex返回-1
- 24. 返回行数= 1
- 25. C++ _snprintf返回-1
- 26. ASP ListBox返回-1
- 27. List.IndexOf返回1 c#
- 28. 代码 “1个\ u02ff” .IndexOf( “1”)返回-1
- 29. Win32 :: shutdown()返回-1,但WSAGetLastError()返回0?
- 30. 可以1返回调用2返回?
该问题不能回答。你已经确定了最常见的原因。如果返回-1,则调用'GetLastError'来找出错误。如果此API调用失败,则您完全有权终止该进程。 –
奇怪的是'HMENU'参数被标记为可选的。如何通过'NULL'菜单处理该函数的有效调用? –
@CodyGray:我猜'_In_opt_'注释在合同的实现方面开始了它的生命。它被放在那里,以便编译器在实现不测试'NULL'的情况下投诉。然后将它复制到界面上,它在语义上没有意义。这是猜测,但。也许还有更多。 – IInspectable