gpt4 book ai didi

c# - 如何在 .NET 中编码 LPSTR**?

转载 作者:太空狗 更新时间:2023-10-29 23:49:37 27 4
gpt4 key购买 nike

我在未处理的 COM 对象中有一个方法,我正在尝试编码:

STDMETHOD(SomeMethod)(LPSTR** items, INT* numOfItems) = 0;

但我想不出编码 LPSTR** 项的正确方法。它应该是一个项目列表。但是,如果尝试做这样的事情:

[PreserveSig] 
int SomeMethod([MarshalAs(UnmanagedType.LPStr)]ref StringBuilder items, ref uint numOfItems);

我只得到第一个项目的第一个字母,没有别的。

如何正确编码 LPSTR** 变量?

最佳答案

我现在无法检查它,但签名应该是这样的:

[PreserveSig]
int SomeMethod(
[MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr, SizeParamIndex = 1)] out string[] items,
out int numOfItems);

当然,这没有帮助,您始终可以通过 Marshal 执行手动编码类(如 Sinatr 建议的那样)。

关于c# - 如何在 .NET 中编码 LPSTR**?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072247/

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