gpt4 book ai didi

delphi - 为什么我在 Delphi XE2 中收到错误缺少接口(interface)方法的实现?

转载 作者:行者123 更新时间:2023-12-03 19:33:40 28 4
gpt4 key购买 nike

考虑以下代码:

uses
{... }
ComObj,
ShlObj;

type
TContextMenu = class(TComObject, IShellExtInit, IContextMenu)
private
{(*}
const
GUID: TGUID = '{99D8B139-0855-4C5D-95E7-BC8EC6254B3D}';
{*)}
private
FCmdCount: LongWord;
FDm: Tdm_ContextMenu;
protected
function IShellExtInit.Initialize = IShellExtInit_Initialize;
function IShellExtInit_Initialize(_pidlFolder: PItemIDList; _lpdobj: IDataObject;
_HKeyProgID: HKEY): HResult; stdcall;
function QueryContextMenu(_Menu: HMENU; _indexMenu, _idCmdFirst, _idCmdLast,
_UFlags: UINT): HResult; stdcall;
function InvokeCommand(var _ici: TCMInvokeCommandInfo): HResult; stdcall;
function GetCommandString(_idCmd, _uType: UINT; _pwReserved: PUINT;
_PszName: LPSTR; _cchMax: UINT): HResult; stdcall;
public
procedure Initialize; override;
destructor Destroy; override;
end;

这在 Delphi 2007 和 XE 中编译得很好,但 Delphi XE2 给了我错误:
“[DCC 错误] u_ContextMenuHandler.pas(16):E2291 缺少接口(interface)方法 IContextMenu.GetCommandString 的实现”

这让我很困惑。我检查了接口(interface)声明,我的 GetCommandString 函数与接口(interface)的声明完全相同。有什么提示吗?

最佳答案

'_idCmd' 被声明 UINT_PTR在 XE2 中(针对 64 位时为 8 个字节)。

关于delphi - 为什么我在 Delphi XE2 中收到错误缺少接口(interface)方法的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373636/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com