日期:2014-05-17  浏览次数:20994 次

C#中如何调用C语言编写的dll,该dll的函数接口中有一个函数指针类型的参数
用c语言编写的一个dll(test.dll),其中有一个函数Speedtest如下: 

int Speedtest(GENERATE_KEYSTREAM GenerateKeystream,int nBitLen, double *result0,double *result1);
其中GENERATE_KEYSTREAM 是一个函数类型,其形式为
void GenerateKeystream(unsigned char *,int, unsigned char *, int )

在C#中静态调用
 [DllImport("test.dll")]
  public static extern int Speedtest(GENERATE_KEYSTREAM GenerateKeystream,int nBitLen, out double []result0,out double[] result1);


问题: 在C#中如何处理这个参数GENERATE_KEYSTREAM GenerateKeystream?

请高手指点。


------解决方案--------------------
委托就是在这种情况下使用的

------解决方案--------------------
C# code

public delegate void GenerateKeyStream(ref byte a,ref byte b);

[DllImport("test.dll")] 
public static extern int Speedtest(GenerateKeyStream  GenerateKeystream,int nBitLen, out double []result0,out double[] result1);