Re[4]: Архитектура Plug-in в концепции СOM
От: sashkamaslukov  
Дата: 22.04.04 10:10
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Аноним, Вы писали:


Vi2>

А>>Эта IDL должна содержать library секцию (потому как без нее tlb будет пустой).
А>>эта несколько странно ( ведь обычно интерфейс не привязан к библиотеке типов? или я не прав)

Vi2>В этом нет ничего странного. TLB — это Type Library. Поэтому это именно описание Библиотеки Типов.

Vi2>

А>>Так после компиляции этого (последнего ) idl_ника в результирующем tlb некоректно создаеться информация о типе. (TLB не открываеться OleView-ром gbitv E_CANNOT_LOADTYPELIBRARY)

Vi2>Как правило, приложение, которое использует плагины, само регистрирует такую TLB — TLB с интерфейсом плагина, с константами и прочей лабудой. В частности, для того, чтобы маршаллить этот интерфейс для каждого плагина.

Vi2>Поэтому это проблема приложения — верно зарегистрировать TLB (или отдельно как plagininterface.tlb, или в составе сервера plagininterface.exe).


Vi2>Проблема проекта плагина — предоставить информацию для разрешения фразы importlib("plagininterface.tlb"); по путям.



окей- все понял. Но:
1.Где же всетакие ГУИД категории объявить? в IDL нельзя же просто ГУИД внести.

2.по путям это как? пускай я делаю так
library RealPlaginLib
{

    importlib("stdole2.tlb");
    importlib("c:\plagininterface.tlb");
    [
        uuid(0F4E4F63-CF65-4C8B-AE74-6EB417402B8F),
        helpstring("Real plagin Class")
    ]
    coclass RealPluginCoClass
    {
        [default] interface IPlaginInterface;
    };
};


После компиляции в TLB OleView не может получить из него информацию...
TYPE_E_ELEMENTNOTFOUND. хотя plagininterafce.tlb лежит на C:\.
что то здесь не то...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.