vc 做的ocx参数是 byte* 数组,在delphi中参数定义为 var pcR: Byte 我如何定义并传递参数?? vc的ocx是个图像处理,读取图像数据,接口为 byte* R,Byte* G,byte* B,我在delphi中可以得到图像的R,G,B三分量的数组,但不知道如何传给Ocx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就知道你再DELPHI中得声明有问题,好像在你前面得一个帖子有看到vc 做的ocx参数是 byte* 数组,在delphi中参数定义为 var pcR: Byte 我如何定义并传递参数?? --- 一般 VC用BYTE* 表示传进去得是一个BYTE数组,你外面不能用var pcr: Byte,而应该用pcr:PByte; 还有这是一维数组得情况不是叫你把VC里面得函数声明贴出来得? 给个例子你领会一下吧:)用VC做个dll//test.hextern "C" __declspec(dllexport) void fnTest(char *);// test.cpp#include "stdafx.h"#include "test.h"BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ return TRUE;}void fnTest(char *buf){ MessageBox(0, buf, "", 0);}在Delphi里面调用program Project1;{$APPTYPE CONSOLE}uses SysUtils;//同一个函数的两种声明方式!procedure fnTest1(var buf: Char); cdecl; external 'test.dll' name 'fnTest';procedure fnTest2(buf: PChar); cdecl; external 'test.dll' name 'fnTest';var c: array of Char;begin setlength(c, 20); fillchar(c[0], length(c), 0); strcopy(PChar(c), 'hello world!'); fnTest1(c[0]); fnTest2(PChar(c));end. 你这种情况用fnTest1这种方式调用! vc 做的ocx参数是 byte* 数组,在delphi中参数定义为 var pcR: Byte -- delphi中的声明错了。 delphi里面的声明没有错,一般由向导自动生成的函数声明都是将byte *buf转换成var buf: byte,调用方法我在上面已经给出了! Delphi中,如何根据输入的字符串来调用相应的函数? query刷新的问题 小弟有個問題請教,cxgrid高手請進 求一条sql TListBox如何设置不同行不同颜色 关于treeview的指针问题? 有没有代替计算字段的方法? 帮忙改改!在等 这个语句哪里错了? 那里有节点有checkbox属性的TreeView控件可以下载? delphi调用VC编的ocx函数的参数传递问题 看不懂的登录窗口的程序,望牛人帮忙解释一下
--- 一般 VC用BYTE* 表示传进去得是一个BYTE数组,你外面不能用var pcr: Byte,而应该用
pcr:PByte; 还有这是一维数组得情况不是叫你把VC里面得函数声明贴出来得?
#include "test.h"BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}void fnTest(char *buf)
{
MessageBox(0, buf, "", 0);
}在Delphi里面调用program Project1;{$APPTYPE CONSOLE}uses
SysUtils;//同一个函数的两种声明方式!
procedure fnTest1(var buf: Char); cdecl; external 'test.dll' name 'fnTest';
procedure fnTest2(buf: PChar); cdecl; external 'test.dll' name 'fnTest';var
c: array of Char;
begin
setlength(c, 20);
fillchar(c[0], length(c), 0);
strcopy(PChar(c), 'hello world!'); fnTest1(c[0]); fnTest2(PChar(c));
end.
delphi中的声明错了。