gpt4 book ai didi

c# - 如何通过用 StringBuilder 声明的 P/Invoke 传递 nullptr?

转载 作者:行者123 更新时间:2023-11-30 20:03:21 26 4
gpt4 key购买 nike

考虑这样一个典型的 P/Invoke 声明:

[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool LookupAccountName(
string SystemName,
string accountName,
IntPtr pSid,
ref uint cbSid,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder ReferencedDomainName,
ref uint ReferencedDomainNameCount,
out SID_NAME_USE SIDUse);

MSDN documentation for LookupAccountName表示如果客户愿意,pSidReferencedDomainName 可以是 nullptr。为 pSid 传递 nullptr 很容易;只需传递 IntPtr.Zero。但是对于 StringBuilder 应该传递什么?

我不想传递空的 StringBuilder,因为我不希望此调用因 ERROR_INSUFFICIENT_BUFFER 而失败。

最佳答案

你可以只为这个参数传递null;它将被编码为空指针。

关于c# - 如何通过用 StringBuilder 声明的 P/Invoke 传递 nullptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236348/

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