DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 10
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 sarsfree (非典型Delphi) ★☆☆☆☆ -
普通会员
2021/2/25 20:50:06
标题:
求助:delphi 如何调用C++函数 返回 byte * 类型 浏览:907
加入我的收藏
楼主: 中控SDK开发包zkemkeeper_TLB.pas中的代码:
function GetUserFacePhotoByName(dwMachineNumber: Integer; const PhotoName: WideString;out PhotoData: byte; out PhotoLength: Integer): WordBool; safecall;

里面的参数:out PhotoData:byte应该如何调用,实在是不会了

Demo中的C#代码如下:
  byte[] PhotoData = new byte[1024 * 1024];
          int phtoSize = 0;

          Cursor = Cursors.WaitCursor;
          if (axCZKEM1.GetUserFacePhotoByName(iMachineNumber, phtoName, out PhotoData[0], out phtoSize))
          {
          using (MemoryStream msCamera = new MemoryStream(PhotoData, 0, phtoSize))
          {
          using (Bitmap bt = new Bitmap(msCamera))
          {
          if (bt != null)
          {

          FileStream fs = new FileStream(@"Photo\\" + phtoName + ".jpg", FileMode.OpenOrCreate);
          msCamera.WriteTo(fs);
          fs.Close();

          Bitmap Pic = new Bitmap(msCamera);
          this.pb_Photo.Image = Pic;
          }
          }
          }


[b]byte[] PhotoData = new byte[1024 * 1024];[/b]

SDK中说明为:
PhotoData   BYTE*   [out]   二进制格式的照片数据 

感谢您的指点。
----------------------------------------------
Delphi forever
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/2/25 21:07:06
1楼: 神马玩意?TLB 导坏了? 估计没人能回答除非他在用  而且还要看名猜。。你猜你猜你猜猜猜 ~
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2021/2/25 23:45:53
2楼: 根据参数名,函数名猜的

var
  PhotoData : array of Byte;
  phtoSize  : Integer;
begin
  SetLength(PhotoData, 1024*1024);  //分配图像数据的内存块,1MB。 调用完成后里面是图像的数据
  phtoSize :=0;//调用后会返回图像数据的大小
  axCZKEM1.GetUserFacePhotoByName(dwMachineNumber, PhotoName, PhotoData[0], phtoSize);
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 sarsfree (非典型Delphi) ★☆☆☆☆ -
普通会员
2021/2/26 0:15:37
3楼: @wr960204  (武稀松)
非常感谢
----------------------------------------------
Delphi forever
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS