如何解决“问题”;不兼容类型:';PPointer';和';指针'&引用;Delphi编译器错误?
使用Delphi XE4(如果有必要,以Win32为目标)构建使用Graphics32库(旧的1.9.1版本)的程序时,我遇到以下编译器错误: [dcc32错误]GR32_LowLevel.pas(1240):E2010不兼容>类型:“指针”和“指针” 这条生产线生产的:如何解决“问题”;不兼容类型:';PPointer';和';指针'&引用;Delphi编译器错误?,delphi,delphi-xe4,graphics32,Delphi,Delphi Xe4,Graphics32,使用Delphi XE4(如果有必要,以Win32为目标)构建使用Graphics32库(旧的1.9.1版本)的程序时,我遇到以下编译器错误: [dcc32错误]GR32_LowLevel.pas(1240):E2010不兼容>类型:“指针”和“指针” 这条生产线生产的: Registry.RegisterBinding(FID_FILLLONGWORD,@@FILLLONGWORD) 其中,寄存器绑定定义为: procedure RegisterBinding(FunctionID: Inte
Registry.RegisterBinding(FID_FILLLONGWORD,@@FILLLONGWORD)代码>
其中,寄存器绑定
定义为:
procedure RegisterBinding(FunctionID: Integer; BindVariable: PPointer);
var
FillLongword: procedure(var X; Count: Cardinal; Value: Longword);
而FillLongword
的定义如下:
procedure RegisterBinding(FunctionID: Integer; BindVariable: PPointer);
var
FillLongword: procedure(var X; Count: Cardinal; Value: Longword);
如何解决编译器错误?在我看来,语法似乎是正确的,是不是@
的意思是“指针的指针”,即PPointer
?
谢谢。@
表示程序变量的地址。此处记录:您使用的是哪个版本的graphics32?你是从回购协议中获取最新版本吗?@DavidHeffernan,更新了Q,这是旧的gr32 1.9.1版本,不是最新的回购协议。因为我在使用Angus的旧GR32_对象
我想知道为什么它是一个指针而不是一个TFillLongword,或者可能是一个TFillValue,或者可能是什么….@SertacAkyuz,因为RegisterBinding
接受不同的过程/函数定义-换句话说,作为“BindVariable”传递的函数可能具有不同的参数。