H
hq1228
Unregistered / Unconfirmed
GUEST, unregistred user!
消息过程传递中定义了几个record,其中一个是桢头,其他几个是桢内容:
桢头: pR1 =^R1;
R1 = record
x1,x2..... : integer;//有很多
data : array[1..512] of char;
end;
桢内容: 大概有五六个record吧。
R2 = record
y1,y2....: integer ; //有很多
end ;
R3 = record
y1,y2....: integer ; //有很多
end ;
在桢头record中,定义data(array[1..512] of char)的目的是分配一块连续的内存区,桢内容作为记录类型(record)实际上也是一块连续的内存区,桢头中的数组和桢内容中的类型如何相互转换?尝试了几种方法:
1。类型强制转换是不行的。
2。data数组变通:定义为指针类型,不可以。因为需要与Unix端C程序通讯,接收消息时无法指向地址。
3。多定义几个桢头,data分别定义为桢内容,可以。好傻!
4。内存拷贝,c里面数组名即为该数组首地址,Delphi中如何获得数组的地址并使它指向已由程序生成的桢内容地址?内存拷贝可嵌套汇编:
asm
mov EAX, pR2
mov pData, EAX
end;
Delphi有无相应的内存拷贝函数?
请高手指点,主要针对第4种方法,或者还有什么招,不吝赐教。。。
桢头: pR1 =^R1;
R1 = record
x1,x2..... : integer;//有很多
data : array[1..512] of char;
end;
桢内容: 大概有五六个record吧。
R2 = record
y1,y2....: integer ; //有很多
end ;
R3 = record
y1,y2....: integer ; //有很多
end ;
在桢头record中,定义data(array[1..512] of char)的目的是分配一块连续的内存区,桢内容作为记录类型(record)实际上也是一块连续的内存区,桢头中的数组和桢内容中的类型如何相互转换?尝试了几种方法:
1。类型强制转换是不行的。
2。data数组变通:定义为指针类型,不可以。因为需要与Unix端C程序通讯,接收消息时无法指向地址。
3。多定义几个桢头,data分别定义为桢内容,可以。好傻!
4。内存拷贝,c里面数组名即为该数组首地址,Delphi中如何获得数组的地址并使它指向已由程序生成的桢内容地址?内存拷贝可嵌套汇编:
asm
mov EAX, pR2
mov pData, EAX
end;
Delphi有无相应的内存拷贝函数?
请高手指点,主要针对第4种方法,或者还有什么招,不吝赐教。。。