我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中:
1
|
int retrieve( int scanno, void * buf); |
在C中是通过先定义一个结构体再调用这个函数的:
1
2
3
4
5
6
7
8
9
10
|
#define COUNT_DIMENSION_MAX 256 typedef struct tagVECTOR_st { int dimension; double vector[COUNT_DIMENSION_MAX]; } VECTOR_st; struct tagSample_st { int ID; VECTOR_st Vec; // } rec; retrieveall(scanno,&rec); |
请问各位大牛,这个retrieve函数的参数void* buf在C#中应该转换成什么?C#中并不能定义void*,我查找过一些资料,貌似说是转换成IntPtr,
1
|
public static extern int retrieveall( int scanno, IntPtr buf); |
但是在C#中调用的时候应该传递什么样的参数给buf呢?C#中又不能写成&rec这种形式。希望大家帮忙解答!谢谢各位!