C#调用复杂API函数的问题
函数大致为:
void Frame(
BOOL * pfKey,
LONG * plSize //C++语言,pfKey表示bool型指针变量,plSize表示LONG型的指针变量
);
我是这样定义函数的:
[DllImport("User32.dll")] public static extern void Frame(ref bool pfKey,ref int plSize);
调用时,是这样:
Frame(ref pfKey1,ref plSize1);
调用时出错,谁知道C++中带指针的Bool型变量参数该如何定义和调用?
问题点数:50、回复次数:5Top
1 楼isaacyh(发现自己啥都不懂。。。回头学C++)回复于 2005-03-04 19:58:56 得分 5
指针的话试试 IntPtrTop
2 楼fangxinggood(JustACoder)回复于 2005-03-04 20:28:24 得分 45
首先:
[DllImport("User32.dll",EntryPoint="Frame")]public static extern void Frame(ref bool pfKey,ref int plSize);
ref 规定传递到 ref 参数的参数必须最先初始化。将此方法与 out 参数相比,后者的参数在传递到 out 参数之前不必显式初始化。
bool pfKey = true;
int plSize = 300;
Frame(ref pfKey,ref plSize);
我调试了一下。出异常:User32中没有Frame方法。Top
3 楼haoco()回复于 2005-03-06 11:00:13 得分 0
upTop
4 楼wpp9999()回复于 2005-03-06 11:28:55 得分 0
upTop
5 楼xiaoyu111(xiaoyu111)回复于 2005-03-13 17:32:51 得分 0
谢谢fangxinggood(JustACoder) 的帮助,User32中是没有Frame方法,我调用的那个函数很复杂,所以我只是把最难的两个参数写出来了,函数名也做了简化,前几天,我已经用你给的方法,将我的函数调用出来,万分感谢!!现在结贴了。Top




