P/Invoke 中奇怪的最后一个错误

发布于 2024-08-21 13:54:39 字数 178 浏览 4 评论 0原文

伙计们!我通过 P/Invoke 调用“PrintDlg”Win32 API。奇怪的是,如果我使用 Visual Studio 调试模式(按 F5)运行我的应用程序,最后一个错误是 122,这意味着“传递给系统调用的数据区域太小”,但是如果我使用 Ctrl+F5 运行它,最后一个错误为 0,消息为“操作成功完成”。这怎么可能?非常感谢...

guys! I am calling "PrintDlg" Win32 API via P/Invoke. Strange enough, if I use Visual Studio debug mode (press F5) to run my application, the last error is 122, which means "The data area passed to a system call is too small" , but if i ran it with Ctrl+F5, the last error is 0 and the message is "The operation completed successfully". How could this be possible? Many thanks...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稀香 2024-08-28 13:54:39

a) 除非函数返回 false,否则不检查错误。

b) 不要使用 GetLastError,使用 CommDlgExtendedError 作为文档建议

c) 开始接受您问题的答案。 :)

a) Don't check for an error unless the function returns false.

b) Don't use GetLastError, use CommDlgExtendedError as the docs suggest.

c) Start accepting answers on your questions. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文