Создание COM на VBScript, а использование на C++?
От: duan Россия  
Дата: 29.10.03 04:25
Оценка:
Создание 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();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.