在自动化对象中,如何创建全局函数?(200分)

  • 主题发起人 主题发起人 lugan0720
  • 开始时间 开始时间
L

lugan0720

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi7创建一个自动化对象,创建的函数都属于一个特定的类,使用时,需创建这个类,才能引用该函数。

如何创建一个全局函数,它虽然属性某一个特定的类,但在使用时,无需创建类,可以直接使用?

添加一个新的Module,在Moudle下添加函数,该函数是全局的,但如何编写实现代码,好像Delphi7没有提供书写代码的地方,这里好像只是用来定义的,没法编写实现代码?

望高手指点,多谢了!
 
光标停在该函数上,按shift+ctrl+c试试。
 
如果不行,公司没有安装delphi回家我在试试。
 
shift+ctrl+c是什么意思?Module定义在tlb中,如何用shift+ctrl+c呀?
 
假如说创建一个自动化对象CoTest.
可以加一个AAA的函数,然后像普通动态链接库中的函数那样是使用AAA函数就行了。
unit Unit2;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
ComObj, ActiveX, Project2_TLB, StdVcl, Windows;

type
TcoTest = class(TAutoObject, IcoTest)
protected
procedure Test; safecall;

end;

Function AAA():Integer;stdcall;

exports
AAA;
implementation

uses ComServ;

Function AAA():Integer;
begin
Result := MessageBox(0,0,0,0);
end;

procedure TcoTest.Test;
begin

end;

initialization
TAutoObjectFactory.Create(ComServer, TcoTest, Class_coTest,
ciMultiInstance, tmApartment);
end.
 
这样的用法,实际上就是DLL导出函数的用法,此用法有种种限制。

我想写出的COM,可以像编程语言内部函数那样的类,可以直接使用类中的函数,而无需创建。

例如:VB中LoadPicture函数,可以直接使用,但它是属于Global类的函数。
 
哦,抱歉。我一开始理解错了。帮不上你的忙,sorry!
 
顶者有分么!
 
如果你想不创建对象的话,建议可以考虑静态函数.调用时只需:类名.方法名就OK!
 
后退
顶部