代码之家  ›  专栏  ›  技术社区  ›  mmmm

在Delphi COM向导中使用记录作为属性类型

  •  1
  • mmmm  · 技术社区  · 14 年前

    我正在尝试设计一个COM库,它使用一个属性返回一个记录。Delphi COM向导允许我创建属性,但是当它被编译时,我得到

    [GENTLB Error] Project1.ridl(1): Error saving C:\Users\mark\Documents\RAD Studio\Projects\Test\Project1.tlb: Inconsistent property functions
    

    [
     uuid(24BD89DB-AB22-430C-874C-EC5CEA062E80)
    ]   
    struct Record1   
    {
        long Field1;   
    };
    
    
    [
      uuid(FA48C31A-56B8-4A86-8325-5A2000AA77B2),
      helpstring("Interface for XXX Object"),
      oleautomation
    ]
    interface IXXX : IUnknown
    {
      [propget, id(0x00000065)]
      HRESULT _stdcall Property1([out, retval] struct Record1* Value);
      [propput, id(0x00000065)]
      struct Record1 _stdcall Property1([in] long Value);
    };
    

    有人能看出我做错了什么吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Ondrej Kelle    14 年前

    [propput, id(0x00000065)]
    HRESULT _stdcall Property1([in] struct Record1 Value);