日期:2014-05-18  浏览次数:20842 次

HELP关于C# dllimport 调用vc++ dll的写法
VC++ 部分代码(my.dll)中的代码
//事件回调函数
typedef void ( CALLBACK* UBoxEventNotifyProc )( 
UBOX_HANDLE uboxHnd //设备句柄
, int eventID //事件,参考UBOX_EVENT的定义
, unsigned long param1 //下面几个参数不同的事件,其含义不同
, unsigned long param2  
, unsigned long param3
, unsigned long param4
);
// 对于返回类型为 UBOX_HANDLE 的函数将返回 INVALID_UBOX_HANDLE。
 int WINAPI ubox_open(UBoxEventNotifyProc proc, UBOX_WORK_MODE mode);


上面的语句用C#调用 怎么写 谢谢各位大哥了
  [DllImport("my.dll")]
.....语句补充?



------解决方案--------------------
哈希表的KEY用 Object.GetHashCode 方法返回的int转换成String
------解决方案--------------------
你好 同样 研究这个东西
evenid: 92929092 p1 : 399127170561735720 p2: 2623505464805031936 p3 90262798917p4:399126191216263168
如何处理 
?? 
Q:714250733
------解决方案--------------------
C# code
public delegate void UBoxEventNotifyProc(
IntPtr uboxHnd,//不知道你这UBOX_HANDLE是什么类型的,指针就用IntPtr吧
Int16, eventID, uint param1,uint param2,uint param3,uint param4
);

[DllImport("my.dll")]
public static extern Int16 ubox_open(UBoxEventNotifyProc proc,UBOX_WORK_MODE mode);//UBOX_WORK_MODE不知道是什么类型,C#里面也重新定义一下吧

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

[DllImport("my.dll")]
public enum UBOX_WORK_MODE
{
   UBOX_WORK...
};
public static extern void UBoxEventNotifyProc(
IntPtr uboxHnd,//不知道你这UBOX_HANDLE是什么类型的,指针就用IntPtr吧
Int16, eventID, uint param1,uint param2,uint param3,uint param4
);
public static extern Int16 ubox_open(UBoxEventNotifyProc proc,UBOX_WORK_MODE mode);
//UBOX_WORK_MODE,这估计是个枚举类,自己先定义一下

------解决方案--------------------
探讨
C# code
public delegate void UBoxEventNotifyProc(
IntPtr uboxHnd,//不知道你这UBOX_HANDLE是什么类型的,指针就用IntPtr吧
Int16, eventID, uint param1,uint param2,uint param3,uint param4
);

[DllImport("my.dll")]
p……