调用C++写的DLL

yuqianyi1974 2010-10-18 03:48:46
只知道C++的DLL导出函数如下面,请教如何在DELPHI调用
int myfum(unsigned char pic[640][480]);
...全文
202 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 seamour 的回复:]
最简单的可以直接写成
function myfum(var pic): Integer; cdecl;

传的时候传一个长度为640*480的一维数组的首元素就可以了
[/Quote]
这样也可以,数组名就是指针,其实就是传递一个指针,不过这样的导入函数定义看着很别扭,pic参数不明确,最好加个注释什么的。
lhy 2010-10-19
  • 打赏
  • 举报
回复
就是一个指针。
像8楼那样最简单,也可以复杂一点使用指针的。
Seamour 2010-10-19
  • 打赏
  • 举报
回复
最简单的可以直接写成
function myfum(var pic): Integer; cdecl;

传的时候传一个长度为640*480的一维数组的首元素就可以了
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liun_li 的回复:]
我被这个弄头疼了...
[/Quote]
那个帖子被转到c++区了...
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liun_li 的回复:]
我被这个弄头疼了...
[/Quote]
又看到你了。。。。,我给你回了,_stdcall约定会名称粉碎,你那个函数已经被改名了,你查一下C++的资料

在d中先定义一个数组,好像是叫什么开放数组


type
_TByteArray = array[0..479] of byte;

//那个C++的导入函数
function myfum(pic: array of _TByteArray):integer;stdcall;external 'dll名'

//d的过程
var
A:array[0..639] of _TByteArray;
begin
//给a的各个元素赋值,传给导入函数
myfum(a);
end;
liun_li 2010-10-19
  • 打赏
  • 举报
回复
我被这个弄头疼了...
yuqianyi1974 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caesardm 的回复:]
个人建议:

让C++开发人员休长假
[/Quote]
人已经走了,没办法
CaesarDM 2010-10-18
  • 打赏
  • 举报
回复
个人建议:

让C++开发人员休长假
国风 2010-10-18
  • 打赏
  • 举报
回复
function myfum(pic: array[0..639, 0..479] of byte):integer;stdcall;
external 'xxxx.dll';

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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