gpt4 book ai didi

c# - 从 C# 访问 C 全局变量 'errno'

转载 作者:太空狗 更新时间:2023-10-29 16:53:37 26 4
gpt4 key购买 nike

P/Invoking 时是否可以在 C# 中访问“errno”变量?这类似于 Win32 GetLastError()。

最佳答案

我相当确定有办法,但这可能是个坏主意。您如何保证运行时在其影响 errno 的内部处理期间未调用某些 CRT 函数?

出于同样的原因,您也不应该直接调用 GetLastErrorDllImportAttribute 提供了一个 SetLastError 属性,因此运行时知道立即捕获最后一个错误并将其存储在托管代码可以使用 Marshal.GetLastWin32Error< 读取的位置.

我认为在这种情况下您可以做的最稳健的事情是创建一个 C DLL,它既执行实际的 C 工作又捕获 errno。 (请注意,仅围绕 errno 捕获编写一个包装器仍然会存在上述问题。)

关于c# - 从 C# 访问 C 全局变量 'errno',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com