Re[2]: Как импортировать библиотеку типов (.tlb) СОМ сервера
От: Базунов Сергей  
Дата: 22.09.06 13:21
Оценка:
Здравствуйте, algol, Вы писали:

A>Здравствуйте, Базунов Сергей, Вы писали:


БС>>Как правильно импортировать библиотеку типов в IDE, что бы

БС>>использовать этот сервер? Сервер работает с определенными
БС>>составными структурами данных, да и вообще мне для
БС>>получения интерфейса, нужно как минимум GUID фабрики класса, и GUID интерфейса.
БС>>Директива #import 'C:\anygoodpath\name.tlb' не приводит ни к чему хорошему.
БС>>После компиляции, компилятор создал ЕЩЕ 2 файла name.tlh and name.tli
БС>>и поет старую песню: undeclared identifier

A>Наверное нужно указывать для идентификаторов namespace импортированной библиотеки или написать

A>using namespace someLib;
A>Если хочется получить GUID в виде LIBID_MyLib, CLSID_MyCoClass, IID_MyInterface, то нужно в директиве #import указать атрибут named_guids.


спасибо. Все получилось.


// test2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#import "dbmanager.tlb" named_guids

using namespace dbmanager;

int _tmain(int argc, _TCHAR* argv[])
{
    CoInitialize(NULL);
    
    IBinFileManger* mgr = NULL;
    
    CoCreateInstance(CLSID_BinFileManger,NULL,CLSCTX_INPROC_SERVER, IID_IBinFileManger,(LPVOID*)&mgr);
    
    mgr->ShowMsg(L"Hello, from Delphi COM Server");

    mgr->Release();

    CoUninitialize();
    return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.