0
我有一個MFC的ActiveX從本地機器運行良好,但當我試圖使用時,它是在服務器上(局域網)我得到的異常,對象沒有方法AboutBox(for例)。 這是我如何調用方法: document.all('Ctrl1')。AboutBox(); AboutBox方法來自於activeX的Ctrl類。他有這種方法。雖然我注意到idl文件中有一些奇怪的東西:方法AboutBox沒有在控件中聲明,但在其他地方 - idl文件在下面,請指教。 012h謝謝,Nahum。activeX公開的方法
這是IDL:
[ uuid(E0D6BB50-57F3-4C0D-9163-CCC0AEC87EF4), version(1.0),
control ]
library nsip_ax_10Lib
{
importlib(STDOLE_TLB);
// Primary dispatch interface for Cnsip_ax_10Ctrl
[
uuid(16C6DE45-B481-4795-AFBA-BE64E1CEF9AA)
]
dispinterface _Dnsip_ax_10
{
properties:
methods:
[id(DISPID_ABOUTBOX)] void AboutBox();
[id(1)] BYTE try2(void);
};
// Event dispatch interface for Cnsip_ax_10Ctrl
[
uuid(871F4F0A-3333-4FDF-A53F-CFB581D15596)
]
dispinterface _Dnsip_ax_10Events
{
properties:
// Event interface has no properties
methods:
};
// Class information for Cnsip_ax_10Ctrl
[
uuid(E228C560-FA68-48E6-850F-B1167515C920)
]
coclass nsip_ax_10
{
[default] dispinterface _Dnsip_ax_10;
[default, source] dispinterface _Dnsip_ax_10Events;
};
};
加載該ActiveX HTML代碼:
<OBJECT CLASSID="CLSID:871F4F0A-3333-4FDF-A53F-CFB581D15596"
CODEBASE="nsip.CAB#version=1,0,0,1"
ID="Ctrl1"
name="Ctrl1"></OBJECT>
IDL是正常的,並不能解釋爲什麼你的代碼失敗。確保您沒有註冊的舊版本的DLL。 –
10xs漢斯,activeX自始至終都有AboutBox的方法。 – user1709555