TBusinessPackege = function(pack485:array of TMessage485;var returnPack485 :array of TMessage485;count :integer) : integer;stdcall;
这个是在DELPHI7中申明的一个函数指针,我在C#中(2005)该如何申明一个委托,传入过去,让其执行啊。
public delegate int dlBussPack485([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeConst = 61)]TMessage485[] pack485, int reccount, ref TMessage485[] returnPack485, int returnCount, int count);
这个委托是我目前的调用,可以传递过去,就是参数不对,returnPack485传过来是NULL。
请各位帮忙出出注意,谢谢了!
这个是在DELPHI7中申明的一个函数指针,我在C#中(2005)该如何申明一个委托,传入过去,让其执行啊。
public delegate int dlBussPack485([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeConst = 61)]TMessage485[] pack485, int reccount, ref TMessage485[] returnPack485, int returnCount, int count);
这个委托是我目前的调用,可以传递过去,就是参数不对,returnPack485传过来是NULL。
请各位帮忙出出注意,谢谢了!
解决方案 »
- delphi ADO 连接数据库
- 能在线程里创建线程吗?
- 使用IdTcpClient和IdTcpServer组件传送图片时出错: Socket Error # 10061 Connection refused
- 各位数据库高手请进!小弟请教!急~
- WebBrowser 中,怎样防止脚本错误的提示;
- 为什么我用DBCHART只能显示一条记录
- 有个控件资源没法下载,大家帮忙下载,不胜感激
- 如何用Delphi编写Web Service,使之只能在Apache下运行?
- 使用QuickRep组件出错Property use standardPrinter does not exist
- ★★谁见过这样酷的报表组件?直接在Delphi的Form上画表格,象Word!
- 急!!!在线!!!!文件夹下子文件夹操作
- 两个矩阵相乘,如何实现 ?
PUSH 0
MOV EAX, DWORD PTR [405668]
CALL 00402F94 取数组长度
PUSH EAX
MOV EAX, DWORD PTR [405668] 取数组地址
PUSH EAX
MOV EAX, DWORD PTR [405664]
CALL 00402F94 取数组长度
PUSH EAX
MOV EAX, DWORD PTR [405664] 取数组地址
PUSH EAX
CALL 004033E8 调用 BusinessPackege可以看到在调用BusinessPackege前Push了5个参数
其实DELPHI 使用的ARRAY参数在C++和C#中调用的时候必须要多个参数,否则调用是不会成功。
2 这个委托是在DELPHI做的DLL中运行,传入的参数就是不对啦!
不知道如何解决。
目前我实现的:1 结构体传递 OK,2不带引用的结构体数组传递,3 回调函数也可以,虽然参数不对,但能够进入
就剩下这个 带引用的结构体数组传递了。。
谢谢楼上两位,继续等待!