sta*_*NCT 5 c# c++ marshalling
我在C++中有一个函数void someFunc(char* arg1, int* arg2),我想编组参数,因为我在C#中使用这个函数(在导入DLL之后).
你能不能告诉我我应该怎么做,因为我在这里很困惑.
[DllImport(Dllname)]
extern void someFunc([MarshallAsAttribute(UnmanagedType,LPStr)] string arg1, IntPtr arg2);
Run Code Online (Sandbox Code Playgroud)
我应该在这里使用IntPtr吗?我不能从C#传递任何int变量的地址,以便它会在C++中的指针中出现?
问题int*可以用于C中的许多不同场景.你如何编组这取决于int* arg2它的意思.
例如,如果它只是设置int的值,您可以将其编组为ref int.但是,如果int*表示数组,则需要传递数组(但这不太可能,因为没有长度项,这在通过指针使用数组时很常见).
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |