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