C#中如何调用C语言编写的dll,该dll的函数接口中有一个函数指针类型的参数

livin 2008-09-16 01:28:46
用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?

请高手指点。
...全文
200 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
White_Cat_Dog 2012-09-03
  • 打赏
  • 举报
回复
我是新手,花了一个星期的时间学习使用c#调用c++的DLL指针函数。还是没有入门,请问在那里可以系统的学习这方面的知识?找了很多资料,都不是很系统性,导致我约看约迷糊。
bygang68 2008-09-16
  • 打赏
  • 举报
回复
那如果是一个用C写的lib的api的话,用C#如何调用呢?
JeffChung 2008-09-16
  • 打赏
  • 举报
回复
看2楼的代码就行了
tigerleq 2008-09-16
  • 打赏
  • 举报
回复
注意参数
转换!!![DllImport("test.dll")]
public static extern int Speedtest(GenerateKeyStream GenerateKeystream,int nBitLen, out double []result0,out double[] result1)
livin 2008-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ZengHD 的回复:]
委托就是在这种情况下使用的
[/Quote]

能够详细一点,刚刚接触C#,很多东西不是很明白。多谢啊
brallow 2008-09-16
  • 打赏
  • 举报
回复

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);
ZengHD 2008-09-16
  • 打赏
  • 举报
回复
委托就是在这种情况下使用的

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧