c - PINVOKE 查询(无符号长*)

标签 c c#-4.0 pinvoke

我正在尝试调用一个采用以下结构作为参数的 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/

相关文章:

c#-4.0 - 如何实例化未包含在 C# 项目中的对象?

c# - 使用 Pascal 调用约定调用 native 方法

.net - 是否可以在 .net 中捕获/重定向我未启动的进程的标准输出?

objective-c - 与结构对齐相关的 EXC_BAD_ACCESS?

c - 如何在 GtkTable 上实现按钮按下事件

c++ - C/C++ 中的固定长度 float ?

c - uint8_t 在达到 255 后不翻转到 0 无法正常工作

c# - Lambda 范围说明

c# - 在 ArrayList c# 中的某个位置插入

C# PInvoke - 返回 char* 并带有引用 char* 参数的函数