L
lili1
Unregistered / Unconfirmed
GUEST, unregistred user!
我主要是想在这个Dll中包括一个类,这个类是提供给JSCript脚本使用的。
我是这样生成那个Dll的:
1.菜单File->New->Other->ActiveX->ActiveXLibrary
得到下面的代码:
library GRFunLib;
uses
ComServ,
GRFunLib_TLB in 'GRFunLib_TLB.pas',
Main in 'Main.pas' {GRClass: CoClass};
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.
2.1.菜单File->New->Other->ActiveX->Automation Object
生成下面的代码:
unit Main;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, GRFunLib_TLB, StdVcl,Dialogs,SysUtils;
type
//我在Delphi询问我类名称的时候填入了GRClass,结果自动生成这个类框架。
TGRClass = class(TAutoObject, IGRClass)
protected
{ Protected declarations }
function aaa:Integer;//这是我加入的函数。我主要是想调用这个函数。
end;
implementation
uses ComServ;
{ TGRClass }
function TGRClass.aaa:Integer;
begin
Result:=0;
end;
initialization
TAutoObjectFactory.Create(ComServer, TGRClass, Class_GRClass,
ciMultiInstance, tmApartment);
end.
接着我用regsvr32命令注册这个Dll.
最后我在Dll相同的目录下写了一个Test.js文件来调用这个Dll.
Test.js的内容为:
var fso;
fso = new ActiveXObject("GRFunLib.GRClass"
fso.aaa();
当我双击执行这个文件后Windows脚本宿主报错。
---------------------------
Windows 脚本宿主
---------------------------
脚本: F:/解释脚本/ActiveXDll/Test.js
行: 3
字符: 1
错误: 对象不支持此属性或方法
代码: 800A01B6
源: Microsoft JScript 运行时错误
---------------------------
确定
---------------------------
真是苦恼呀。
new ActiveXObject("GRFunLib.GRClass"这一句能执行成功。
但是就是调不出aaa这个函数。
请各位大虾帮忙呀。
我是这样生成那个Dll的:
1.菜单File->New->Other->ActiveX->ActiveXLibrary
得到下面的代码:
library GRFunLib;
uses
ComServ,
GRFunLib_TLB in 'GRFunLib_TLB.pas',
Main in 'Main.pas' {GRClass: CoClass};
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.
2.1.菜单File->New->Other->ActiveX->Automation Object
生成下面的代码:
unit Main;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, GRFunLib_TLB, StdVcl,Dialogs,SysUtils;
type
//我在Delphi询问我类名称的时候填入了GRClass,结果自动生成这个类框架。
TGRClass = class(TAutoObject, IGRClass)
protected
{ Protected declarations }
function aaa:Integer;//这是我加入的函数。我主要是想调用这个函数。
end;
implementation
uses ComServ;
{ TGRClass }
function TGRClass.aaa:Integer;
begin
Result:=0;
end;
initialization
TAutoObjectFactory.Create(ComServer, TGRClass, Class_GRClass,
ciMultiInstance, tmApartment);
end.
接着我用regsvr32命令注册这个Dll.
最后我在Dll相同的目录下写了一个Test.js文件来调用这个Dll.
Test.js的内容为:
var fso;
fso = new ActiveXObject("GRFunLib.GRClass"
fso.aaa();
当我双击执行这个文件后Windows脚本宿主报错。
---------------------------
Windows 脚本宿主
---------------------------
脚本: F:/解释脚本/ActiveXDll/Test.js
行: 3
字符: 1
错误: 对象不支持此属性或方法
代码: 800A01B6
源: Microsoft JScript 运行时错误
---------------------------
确定
---------------------------
真是苦恼呀。
new ActiveXObject("GRFunLib.GRClass"这一句能执行成功。
但是就是调不出aaa这个函数。
请各位大虾帮忙呀。