delphi指针几个很奇怪的现象
1.
对于这样的定义
buffer: array[0..255] of char;
在function中使用
pointer(buffer),会提示非法类型转换
但若使用
zeromemory(buffer, 255)就不会, 而zeromemory的原型是
ZeroMemory(destination: pointer <----!!!!!! ....)
2.对于类定义
TMyClass = class
private
function abc: integer;
public
procedure foo;
end;
procedure foo;
type
TP = function: integer of object;
var
p: TP;
begin
move(p, publicfoo, sizeof(tp));
//publicfoo是一全局变量, 居然可以用这样的方法把类的private部分拷贝出去
end;
这应该是一种不好的做法,delphi对函数指针控制的还比较严格。没有那个of object就无法执行,想听听高手们的意见和相关心得