当我调用ShellExecute时,我得到了返回值 - 一个整数。我在哪里可以获得相关的错误消息?我知道它们很通用,但我在MS文档中看到了消息。
答案 0 :(得分:8)
ShellExecute
的错误处理是一场灾难。 Raymond Chen在此处讨论:Why does ShellExecute return SE_ERR_ACCESSDENIED for nearly everything?因此,即使您可以将少数可能的ShellExecute
错误转换为文本,您也会发现您总是得到Access denied
。这并不是很有用。
最重要的是,如果您想要真正的错误报告,那么您需要使用ShellExecuteEx
。如果失败,请调用GetLastError
以获取Win32错误。要使用描述性文字将其变为例外,请致电RaiseLastOSError
。如果您只想要与错误相关联的描述性文字,请致电SysErrorMessage
。