想不明白.
我在delphi中直接赋值Variant一个指针类型编译的时候报错。
如:var v:Variant;
i:Pint;
i^:=111;
v :=i;
编译的时候错误为:Incompatible types: 'Variant' and 'PAnsiChar'。但是我见Variant 这个联合体定义的数据类型似乎又支持指针类型,比如:
Byte FAR* pbVal; // VT_BYREF|VT_UI1.
short FAR* piVal; // VT_BYREF|VT_I2.
long FAR* plVal; // VT_BYREF|VT_I4.
float FAR* pfltVal; // VT_BYREF|VT_R4.
所以不知道怎么回事啦,如果您明白,请指教。谢谢。我刚刚开始用Delphi,希望可以和大家多交流,我的msn: [email protected]
我在delphi中直接赋值Variant一个指针类型编译的时候报错。
如:var v:Variant;
i:Pint;
i^:=111;
v :=i;
编译的时候错误为:Incompatible types: 'Variant' and 'PAnsiChar'。但是我见Variant 这个联合体定义的数据类型似乎又支持指针类型,比如:
Byte FAR* pbVal; // VT_BYREF|VT_UI1.
short FAR* piVal; // VT_BYREF|VT_I2.
long FAR* plVal; // VT_BYREF|VT_I4.
float FAR* pfltVal; // VT_BYREF|VT_R4.
所以不知道怎么回事啦,如果您明白,请指教。谢谢。我刚刚开始用Delphi,希望可以和大家多交流,我的msn: [email protected]
指针实际上就是一个LongWord
或者
V := Integer(i);如果要取出来时同样需要强转i := Ptr(DWORD(V));
或者
i := Ptr(Integer(V));