Создание COM на VBScript, а использование на C++? Помогите...
Создаю СОМ так:
Файл: coolOBJ.wsc
<?xml version="1.0"?>
<component id="duan">
<registration
description="coolOBJ"
progid="coolOBJ"
version="1.00"
classid="{f87907b4-5595-49fd-96b2-bdce03fc85fd}"
>
</registration>
<public>
<method name="qd">
<PARAMETER name="x"/>
</method>
</public>
<script language="VBScript">
<![CDATA[
function qd(x)
qd = x*x
end function
]]>
</script>
</component>
Регистрирую.
Cоздаю библиотеку типов: scriptlet.tlb.
VB (все работает):
' testCOM.vbs
Set component = CreateObject("coolOBJ")
MsgBox component.qd(2), 65, "MsgBox"
C++ (не работает. Почему???):
// testCOM.cpp
#import "scriptlet.tlb"
void _tmain(){
CoInitialize( NULL );
ScriptletTypeLib::AutomationPtr p;
p.CreateInstance(L"coolOBJ"); // не работает
p->qd(... // естественно тоже не работает
CoUninitialize();
}