需要调用C++写的DLL,其中有若干结构体,其中一个如下:
typedef unsigned shout uint16;
typedef struct
{
OneHead_t tHead ;//共用头信息
uint16 uErrorCount ;//故障数量
uint16* puErrorArray ;//故障码数组
}TimerError_t ;请问那个uint16*该是什么类型啊? 用ref报错啊另外,该dll中有的函数是通过修改参数里的结构体指针内容做返回值的,请问这样的函数是不是在C#里调用时加上ref就可以了?多谢
typedef unsigned shout uint16;
typedef struct
{
OneHead_t tHead ;//共用头信息
uint16 uErrorCount ;//故障数量
uint16* puErrorArray ;//故障码数组
}TimerError_t ;请问那个uint16*该是什么类型啊? 用ref报错啊另外,该dll中有的函数是通过修改参数里的结构体指针内容做返回值的,请问这样的函数是不是在C#里调用时加上ref就可以了?多谢
struct TimerError_t
{
OneHead_t tHead ;//共用头信息
uint16 uErrorCount ;//故障数量
IntPtr puErrorArray ;//故障码数组
}
此枚举与 StructLayoutAttribute 一起使用。默认情况下,公共语言运行库将使用 Auto 布局值。为减少与 Auto 值关联的布局相关问题,C#、Visual Basic 和 C++ 编译器为值类型指定了 Sequential 布局。那是不是表示[StructLayout(LayoutKind.Sequential)] 对值类型(比如结构)而言不是必须的?