c语言转换成delphi程序语言

1,指针
int *ptr; 
char *ptr;

var
ptr:^Integer;
ptr:^char;

2,无类型指针的定义
c
void *ptr;
delphi:
ptr:Pointer

3,取值:
c
(*ptr)
delphi
ptr^

4,取地址
c
ptr=&Object;
delphi
ptr:=@Object

5,指针运算
c
char a[20];
char *ptr=a;
ptr++;
ptr+=2;
delphi
var
a:array[1..20] of char;
ptr:Pchar;//ptr:^char;
begin
ptr:=@a;
inc(ptr)
inc(ptr,2);
end;

6,动态内存分配
c
int *ptr,*ptr2;
int i;
ptr=(int*)malloc(sizeof(int)*20);
ptr2=ptr;
for(i=0;i<20;i++){
*ptr=i;
ptr++;
}
free(ptr2)
delphi
var ptr,ptr2:^integer;
i:integer;
begin
GetMem(ptr,sizeof(integer)*20);
ptr2:=ptr;
for i:=0 to 19 do
begin
ptr^:=i;
inc(ptr);
end;
FreeMem(ptr2);
end;

7,字符数组运算
c
char str[15];
char *pstr;
strcpy(str,"teststr");
strcat(str,"_testok");
pstr=(char*)malloc(sizeof(char)*15);
strcpy(pstr,str);
print(pstr);
free(pstr);
delphi
var str:array[1..15]of char;
pstr:Pchar;
begin
strcopy(@str,'teststr');
strcat(@str,'_testok');
getmem(pstr,sizeof(char)*15);
strcpy(pstr,@str);
write(pstr)
freemem(pstr);
end;

8,函数指针
c
typedef int (*PVFN)(int)
int main(){
HMODULE hModule=LoadLibrary("test.dll");
PVFN pvfn=NULL;
pvfn=(PVFN)GetProcAddress(hModule,"Function1");
pvfn(2);
FreeLibrary(hModule);
}
delphi
type PVFN=function(para:Integer):integer
var
fn:PVFN;
hm:HMODULE;
begin
hm:=LoadLibrary('test.dll');
fn:=GetProcAddress(hm,'Function1');
fn(2);
FreeLibrary(hm);
end;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值