我正在尝试调用一个采用以下结构作为参数的 C 函数:
typedef struct CSTRUCT
{
unsigned long* p1;
unsigned long* p2;
unsigned long* p3;
unsigned long* p4;
} CSTRUCT;
我需要从 C# 调用该函数,并且需要知道此 C 结构体的 pinvoke C# 等效项。有人可以帮忙吗?
最佳答案
C 中的
unsigned long* p1
只是一个指针,通常在 C# 中将其声明为 IntPtr
。这是该过程中最简单的部分。困难的部分是如何分配给指针。指向内存的指针是否属于 C 代码?或者它是 C# 代码拥有的内存吗?谁写入该内存,是 C 代码还是 C# 代码?您需要知道这些问题的答案,然后才能取得进展。
关于c - PINVOKE 查询(无符号长*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934306/