请问这个动态连接库该怎么调用?(50分)

  • 主题发起人 主题发起人 plf22
  • 开始时间 开始时间
P

plf22

Unregistered / Unconfirmed
GUEST, unregistred user!
extern "C" __declspec( dllexport ) int RS15_Decode( int type, unsigned char *rsbuff );
这是用C编成的一个动态连接库,我在Delphi中该怎样调用,主要是不知道unsigned char *rsbuff 在
delphi中该怎样定义,请各位赐教
 
『Delphi和C++数据类型对照表』

Delphi 字长/值域 C++

ShortInt 8位有符号整型 signed char
SmallInt 16位有符号整型 short
LongInt 32位有符号整型 int
Byte 8位无符号整型 unsigned char
Word 16位无符号整型 unsigned short
Integer 32位有符号整型 int
Cardinal 32位无符号整型 unsigned int
Boolean 真/假 bool
ByteBool 真/假 或 8位无符号整型 unsigned char
WordBool 真/假 或 16位无符号整型 unsigned short
LongBool 真/假 或 32位无符号整型 BOOL (WinAPI)
AnsiChar 8位无符号字符 char
WideChar 宽字编码字符 wchar_t
Char 8位无符号字符 char
AnsiString Delphi的字符串类 AnsiString 类
String[n] 老式的Delphi字符串, n = 1..255字节 SmallString<n> 模板类
ShortString 老式的Delphi字符串, 255字节 SmallString<255>
String Delphi的AnsiString类 AnsiString
Single 32位浮点数 float
Double 64位浮点数 double
Extended 80位浮点数 long double
Real 32位浮点数 double
Pointer 32无类型指针 void *
PChar 32位字符型指针 unsigned char * //<<<<<<<<<<<<<<<<<<<<<<<<<
PAnsiChar 32位ANSI型字符指针 unsigned char * //<<<<<<<<<<<<<<<<<<<<<<<<<
Comp 64位浮点数 Comp 类
OleVariant OLE可变类型值 OleVariant 类

 
问个比较菜的问题,如果用p:pchar这种类型的指针怎么指向一个数组?
 
procedure TForm1.Button1Click(Sender: TObject);
var
p:pchar;
s:array[0..15]of char;
begin
s:='123456789012345';
p:=s
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ShowMessage(p);

end;
 
真是感谢,我想指向一个字节型数组,该怎么写?上面那个方法通不过
temp:array [1..15] of byte;
p:pchar;

p:=temp //<<通不过
 
procedure TForm1.Button1Click(Sender: TObject);
var
p:pchar;
temp:array[0..15] of byte;
begin
temp[0]:=2
//2是字符串的长度
temp[1]:=ord('a');
temp[2]:=0
//指向字符串的指针,要以0结尾,否则运行时会出现错误
p:=@temp[1]
//<<<<<<<<<<<<<要把这个数组的地址赋给它
ShowMessage(p);

end;
 
后退
顶部