解决方案 »
- 求解c#正则怎么写?
- 关于断点续传的
- 高难度问题:c#如何调用qq上的软键盘
- C#连接SQL Server
- 急急急winform:datagrid:怎样禁止显示多张关联表时!追加一行(不想让有*的那一行显示出来)
- 未处理 System.TypeInitializationException Message=""Medecins.类包.SQL"的类型初始值设定项引发异常
- 如何把text里的300.502元以人民币大写的形式输出。
- 在C#中想写一个类似C 语言中的while(1)一样的死循环,应写在什么位置啊?
- C#写的程序出问题了,程序自动退出,系统日志里面提示.Net RunTime
- Windows Form下,如何抓取网页中的中文信息?
- datagridview上的click 事件出现了问题,
- 关于跨线程 调用webbrowser 的问题
[DllImport("Interface.dll", CharSet=CharSet.Auto)]
public static extern int showmessage(myfun fun);
//...
private void btnStart_Click(object sender, EventArgs e) {
showmessage(new myfun(execcmd));
}
int execcmd(uint machineNo, int recordCount){
//...
}C++中的LONG也是32位的数据,改C#中的int另外C++中的导出函数默认使用_cdcel的方式导出,而C#中的函数调用是_stdcall,你将C++中的函数和回调函数的导出方式改为_stdcall
谢谢,但是我查了一下 CALLBACK 在 vc 里面就是 __stdcall 的一个宏。应该也是可以的。
现在我这样定义,第一个值可以取到,就是后面的参数取不到值,老是0
void CALLBACK showMessage(u_long id, u_long uid);
传值 的时候 id 可以取到, 但 uid 老是0
确实是参数定义的问题,c++ 里面是 u_long,C# 里面只能定义为 uint, 哎。难怪后面的值取不到了。