基数不兼容类型错误DelphiXE2
我真的不理解这个“不兼容类型”错误(Delphi XE2) [……]基数不兼容类型错误DelphiXE2,delphi,delphi-xe2,Delphi,Delphi Xe2,我真的不理解这个“不兼容类型”错误(Delphi XE2) [……] 属性句柄:基数读取GetHandle->error hereTHandle是基于Delphi XE中的Cardinal声明的类型。(由于64位和跨平台,它在XE2中定义为NativeUInt)。这是一种新型的 如果您的GetHandlegetter返回一个THandle,那么您的属性也应该声明为THandle。更改它,事情就会正常进行。因此(与DelphiXE2相关)我对NativeUInt进行了更改。我现在有了这个僵局,另一
属性句柄:基数读取GetHandle代码>->error hereTHandle
是基于Delphi XE中的Cardinal
声明的类型。(由于64位和跨平台,它在XE2中定义为NativeUInt
)。这是一种新型的
如果您的GetHandle
getter返回一个THandle
,那么您的属性也应该声明为THandle
。更改它,事情就会正常进行。因此(与DelphiXE2相关)我对NativeUInt进行了更改。我现在有了这个僵局,另一个与MMSystem WaveInClose相关的不兼容错误类型Integer和Antivent。->WaveInClose方法返回系统。cardinal@volvox:这是由相同类型的错误引起的,因此修复程序将是相同的-更改其中一种类型以与另一种兼容。尽可能使用XE2类型,因为它们将在XPlatform和64位中工作,正如我前面提到的。(如果您仔细阅读,我的答案是将其更改为THandle
,而不是NativeUInt
;这样可以使其前后兼容。)谢谢-我终于在Delphi 2007下接受了该项目-导致太多库不是最新的。我感到痛苦。我正在转换大约100 Mb的sources 2006->XE2:-)和一些组件,如ToolBar97和pascal HTMLViewer,它们早就过时了。
function TWaveBase.GetHandle: THandle;
begin
if HandleNeeded then begin
if HandleAllocated then
CloseHandle;
CreateHandle(False);
end;
FHandleNeeded:=False;
Result:=FHandle;
end;