Knight94(愚翁),进来看看,急

benjiamen 2006-09-15 08:32:07
有个Active控件,现需调用一函数
VC中的调用格式:
BYTE Buff[512][128];
...
myActive.SendPicture(0,i,(long)Buff);

DELPHI中的调用格式:

Var Buff : Array [0..511,0..127] Of Byte;
...
myActive.SendPicture(0,i,Integer(@Buff[0,0]));

C#该如何调用,已经把这个外部的ACTIVE组件加入了项目,
byte [,] Buff = new byte [512,128];
...
myActive.SendPicture(0,i,??(如何写));

myActive.SendPicture(0,i,Buff[0,0])
这样可以吗?
...全文
253 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
benjiamen 2006-09-16
  • 打赏
  • 举报
回复
多谢,结贴
benjiamen 2006-09-15
  • 打赏
  • 举报
回复
谢谢,
Knight94 2006-09-15
  • 打赏
  • 举报
回复
have a try!

byte [,] Buff = new byte [512,128];
IntPtr pArray = Marshal.UnsafeAddrOfPinnedArrayElement( Buff, 0 );
SendPicture( prognum, setp, pArray.ToInt32() );
benjiamen 2006-09-15
  • 打赏
  • 举报
回复
activex转化后函数型如下
SendPicture(short prognum, short setp, int lbBuff )
第三个参数是是int型
Knight94 2006-09-15
  • 打赏
  • 举报
回复
如果是前两者的话,比较简单,你采用Marshal.UnsafeAddrOfPinnedArrayElement来获得数组地址。
benjiamen 2006-09-15
  • 打赏
  • 举报
回复
我的QQ是43671231,请加我,
Knight94 2006-09-15
  • 打赏
  • 举报
回复
你在c#中activex转化后,所看到的第三个参数类型是什么,int or intptr or object?
benjiamen 2006-09-15
  • 打赏
  • 举报
回复
是要传一 byte数组.这个参数是一个byte数组的首指针
VC中的调用格式:
BYTE Buff[512][128];
...
myActive.SendPicture(0,i,(long)Buff);

DELPHI中的调用格式:

Var Buff : Array [0..511,0..127] Of Byte;
...
myActive.SendPicture(0,i,Integer(@Buff[0,0]));
Knight94 2006-09-15
  • 打赏
  • 举报
回复
to myActive.SendPicture(0,i,Buff[0,0])

应该不是这样。

先说说最后一个参数的类型是什么

111,097

社区成员

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

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

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