H
highfly
Unregistered / Unconfirmed
GUEST, unregistred user!
我想写这样一个com组件,这个组件一旦被调用后就初始化一个变量FCount=0,然后客户端程序可以
通过调用setcount的方法来增加这个计数,客户程序不能把FCount清0,可能有多个客户程序,
A,B,C,要使他们都可以调用这个setcount,
比如
在程序A中调用setcount后FCount=1
然后在B中调用setcount后Fcount=2
C再调用后Fcount=3;
下面的程序不行,为什么每次调用后就Fcount=0了?
type
TmyServer = class(TTypedComObject, ImyServer)
private
FCount:integer;
protected
function SetCount: HResult; stdcall;
function GetCount(out count: Integer): HResult; stdcall;
public
procedure Initialize;override;
end;
implementation
uses ComServ;
function TmyServer.SetCount: HResult;
begin
inc(FCount);
end;
function TmyServer.GetCount(out count: Integer): HResult;
begin
Count:=FCount;
end;
procedure TmyServer.Initialize;
begin
inherited;
FCount:=0;
end;
initialization
TTypedComObjectFactory.Create(ComServer, TmyServer, Class_myServer,
ciMultiInstance, tmSingle);
end.
通过调用setcount的方法来增加这个计数,客户程序不能把FCount清0,可能有多个客户程序,
A,B,C,要使他们都可以调用这个setcount,
比如
在程序A中调用setcount后FCount=1
然后在B中调用setcount后Fcount=2
C再调用后Fcount=3;
下面的程序不行,为什么每次调用后就Fcount=0了?
type
TmyServer = class(TTypedComObject, ImyServer)
private
FCount:integer;
protected
function SetCount: HResult; stdcall;
function GetCount(out count: Integer): HResult; stdcall;
public
procedure Initialize;override;
end;
implementation
uses ComServ;
function TmyServer.SetCount: HResult;
begin
inc(FCount);
end;
function TmyServer.GetCount(out count: Integer): HResult;
begin
Count:=FCount;
end;
procedure TmyServer.Initialize;
begin
inherited;
FCount:=0;
end;
initialization
TTypedComObjectFactory.Create(ComServer, TmyServer, Class_myServer,
ciMultiInstance, tmSingle);
end.