如何调用DLL中参数带函数指针的函数?

xiaollx 2007-08-08 08:19:58
请较!
...全文
183 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2007-08-14
  • 打赏
  • 举报
回复
using System;
using System.Runtime.InteropServices;

public delegate bool CallBack(int hwnd, int lParam);

public class EnumReportApp {

[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);

public static void Main()
{
CallBack myCallBack = new CallBack(EnumReportApp.Report);
EnumWindows(myCallBack, 0);
}

public static bool Report(int hwnd, int lParam) {
Console.Write("Window handle is ");
Console.WriteLine(hwnd);
return true;
}
}
xiaollx 2007-08-14
  • 打赏
  • 举报
回复
顶一下
xiaollx 2007-08-08
  • 打赏
  • 举报
回复
有人可以解答吗?比较急
xiaollx 2007-08-08
  • 打赏
  • 举报
回复
谢谢。不过还是不太明白。你给出的是char的指针变量,我的函数原型中有函数指针,如何处理?
Koala_sea 2007-08-08
  • 打赏
  • 举报
回复
给你举个例子:
[DllImport("Tw16vid")]
unsafe private static extern int TV_ReceiveCallingID(int chno, char* far, int size);

调用
unsafe
{
char a = ' ';
point = &a;
callingLen = TV_ReceiveCallingID(ChNo, point, CALLING_LENGTH);
}
xiaollx 2007-08-08
  • 打赏
  • 举报
回复
自己顶一下
xiaollx 2007-08-08
  • 打赏
  • 举报
回复
比如如下的函数,如何在C#中导入?
typedef DWORD (__stdcall AFunc)(DWORD para1, void(*)(DWORD, DWORD, DWORD));
xiaollx 2007-08-08
  • 打赏
  • 举报
回复
能否给出一个示例?
真相重于对错 2007-08-08
  • 打赏
  • 举报
回复
是用委托

110,529

社区成员

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

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

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