首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问一个编译异常:Declaration differs from declaration

2012-02-16 
请教一个编译错误:Declaration differs from declaration?unitUnit1interfaceusesWindows,Messages,SysUt

请教一个编译错误:Declaration differs from declaration?
unit   Unit1;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   Ole2,   UrlMon;

type
    TForm1   =   class(TForm,   IBindStatusCallback)
    private
        {   Private   declarations   }
        function   OnStartBinding(dwReserved:   DWORD;   pib:   IBinding):   HResult;   stdcall;
        function   GetPriority(out   nPriority):   HResult;   stdcall;
        function   OnLowResource(reserved:   DWORD):   HResult;   stdcall;
        function   OnProgress(ulProgress,   ulProgressMax,   ulStatusCode:   ULONG;
            szStatusText:   LPCWSTR):   HResult;   stdcall;
        function   OnStopBinding(hresult:   HResult;   szError:   LPCWSTR):   HResult;   stdcall;
        function   GetBindInfo(out   grfBINDF:   DWORD;   var   bindinfo:   TBindInfo):   HResult;   stdcall;
        function   OnDataAvailable(grfBSCF:   DWORD;   dwSize:   DWORD;   formatetc:   PFormatEtc;
            stgmed:   PStgMedium):   HResult;   stdcall;
        function   OnObjectAvailable(const   iid:   TGUID;   punk:   IUnknown):   HResult;   stdcall;
    public
        {   Public   declarations   }
    end;

var
    Form1:   TForm1;

implementation

{$R   *.dfm}

{   TForm1   }

function   TForm1.GetBindInfo(out   grfBINDF:   DWORD;
    var   bindinfo:   TBindInfo):   HResult;
begin

end;

function   TForm1.GetPriority(out   nPriority):   HResult;
begin

end;

function   TForm1.OnDataAvailable(grfBSCF,   dwSize:   DWORD;
    formatetc:   PFormatEtc;   stgmed:   PStgMedium):   HResult;
begin

end;

function   TForm1.OnLowResource(reserved:   DWORD):   HResult;
begin

end;

function   TForm1.OnObjectAvailable(const   iid:   TGUID;
    punk:   IInterface):   HResult;
begin

end;

function   TForm1.OnProgress(ulProgress,   ulProgressMax,   ulStatusCode:   ULONG;
    szStatusText:   LPCWSTR):   HResult;
begin

end;

function   TForm1.OnStartBinding(dwReserved:   DWORD;   pib:   IBinding):   HResult;
begin

end;

function   TForm1.OnStopBinding(hresult:   HResult;   szError:   LPCWSTR):   HResult;
begin

end;

end.

编译时出错:
[Error]   Unit1.pas(25):   Declaration   of   'OnDataAvailable '   differs   from   declaration   in   interface   'IBindStatusCallback '
[Error]   Unit1.pas(25):   Declaration   of   'OnObjectAvailable '   differs   from   declaration   in   interface   'IBindStatusCallback '


[Error]   Unit1.pas(59):   Declaration   of   'OnObjectAvailable '   differs   from   previous   declaration
[Fatal   Error]   Project1.dpr(5):   Could   not   compile   used   unit   'Unit1.pas '

怎么解决该问题呀?


[解决办法]
问题原因找到了:PFormatEtc和PStgMedium在ole2和ActiveX两个单元中都有定义,你应该引用ActiveX单元,把uses部分的ole2改成ActiveX即可。

热点排行