从结构中提取指针参数

时间:2014-02-09 14:43:22

标签: c# c++ dllimport

在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的指针。我设置了端口和位,然后我想读取状态。

如何转换C#,USING DllIMPORT,包含结构PT_DioReadBit的C ++函数DRV_DioReadBit。

1 个答案:

答案 0 :(得分:0)

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