从结构中提取指针参数

Extract pointer parameter from a structure

本文关键字:指针 参数 提取 结构      更新时间:2023-10-16

在dll库中,我有函数DRV_DioReadBit,包含结构PT_DioReadBit。C++声明是:

FEXPORT LRESULT FTYPE DRV_DioReadBit(LONG_PTR DriverHandle, LPT_DioReadBit lpDioReadBit);

结构PT_DioReadBit包含指针*state如下(C++):

 typedef struct tagPT_DioReadBit
{
    USHORT      port;
    USHORT      bit;
    USHORT far  *state;

} PT_DioReadBit, FAR * LPT_DioReadBit;

lpDioReadBit是指向结构PT_DioReadBit的指针,该结构存储目标端口号USHORT port、位顺序号USHORT bit和返回的位状态USHORT *state。我设置了端口和位,然后我想读取状态。

如何使用 DllIMPORT 在 C# 中进行转换,C++函数DRV_DioReadBit包含结构PT_DioReadBit。

我从来没有真正尝试过,但你可能可以以常规方式使用它,仍然在 C# 中使用指针。是的,C# 也有指针,但您必须在"不安全"模式下使用它们,并且必须转到项目属性才能允许使用不安全模式。