繁体   English   中英

将 int* 编组到 C#

[英]Marshalling int* to C#

我在 C++ 中有一个函数void someFunc(char* arg1, int* arg2)我想在 C# 中使用这个函数时编组参数(在导入 DLL 之后)。

你能告诉我我应该如何编组,因为我在这里很困惑。

[DllImport(Dllname)]
extern void someFunc([MarshallAsAttribute(UnmanagedType,LPStr)] string arg1, IntPtr arg2);

我应该在这里使用 IntPtr 吗? 我不能从 C# 传递任何 int 变量的地址,以便它会落在 C++ 的指针中?

问题是int*可用于 C 中的许多不同场景。如何编组这取决于int* arg2的含义。

例如,如果它只是设置一个 int 值,您可以将其编组为ref int 但是,如果int*表示一个数组,则您需要传递一个数组(但是这不太可能,因为没有长度项,这在通过指针使用数组时很常见)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM