这一个这样的dll外部调用函数。
procedure GetInfo( var totalBytes: integer; var sndPtr: pointer); stdcall;
这个sndPtr参数我应该给他一个怎样的变量?是不是定义:
MyPtr : pointer;
这个MyPtr要不要给他分配内存空间,就算要也不知要分配多少呀?
这个函数的totalBytes返回了那个sndPtr指针的数据大小,以Byte计。
那我用怎样的操作可以把这个指针指向的数据读出来呀??
这样不行呀:
for i := 0 to totalbytes - 1 do
begin
showmessage(inttostr(integer(sndPtr^)));
inc(sndPtr)
end;
procedure GetInfo( var totalBytes: integer; var sndPtr: pointer); stdcall;
这个sndPtr参数我应该给他一个怎样的变量?是不是定义:
MyPtr : pointer;
这个MyPtr要不要给他分配内存空间,就算要也不知要分配多少呀?
这个函数的totalBytes返回了那个sndPtr指针的数据大小,以Byte计。
那我用怎样的操作可以把这个指针指向的数据读出来呀??
这样不行呀:
for i := 0 to totalbytes - 1 do
begin
showmessage(inttostr(integer(sndPtr^)));
inc(sndPtr)
end;
var
Buff : array of Byte;
TotalBytes : integer;
sndPtr : Pointer;
begin
GetInfo( totalBytes,sndPtr);
SetLength(Buff,TotalBytes);
Move(sndPtr^,Buff[0],TotalBytes);
showmessage(Pchar(Buff));
end;
搞定!