delphi 调用DLL ,DLL返回一个16进制数,如何声明?如何将16进制数转换为字符串?

我的声明:functionGetColor(varfoundx:integer;varfoundy:integer):DWORD;stdcall;external'au3... 我的声明:
function GetColor(var foundx:integer;var foundy:integer):DWORD;stdcall;external 'au3.dll' name 'AU3_PixelGetColor';

调用:
CClor:= GetColor(PointPos.X,PointPos.Y);
返回值:4294967295
展开
 我来答
RedBaronVIP
2013-01-02 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:245万
展开全部
1、如何声明?你不是声明的挺好么。注意:如果foundx、foundy前面带var,那么函数的C语言声明中这两个参数必须是指针。
2、10进制、2进制、16进制只是表示方法不同,适合人类识别,它们在计算机内存里都是2进制存储,从来没听说过一个dll能返回16进制。难道您的计算机是16进制计算机?
3、数值转16进制的方法:
function IntToHexStr(n: DWORD): string;
var
h: array[1..32] of Char;
i, j: DWORD;
begin
h[32] := #0;
i := $40000000;
for j := 1 to 31 do
begin
if n and i <> 0 then
h[j] := '1'
else h[j] := '0';
i := i shr 1;
end;
i := 1;
while h[i] = '0' do Inc(i);
Result := PChar(@h[i]);
end;
追问
应该返回一个颜色值,试过字符串,返回为空,试过integer,返回为-1,所以我猜测是16进制数。真郁闷。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式