COM. создание объектов.
Пишу
CoInitialize(NULL);
IDiaDataSource* pSource;
CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER,
IID_IDiaDataSource, (void**) &pSource);
:confused:
Очень надо..
Цитата: LifeKate
Подскажите плиз!!! Что за ошибка "Класс не зарегистрирован", и что с ней делать?
Пишу
CoInitialize(NULL);
IDiaDataSource* pSource;
CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER,
IID_IDiaDataSource, (void**) &pSource);
:confused:
Очень надо..
Пишу
CoInitialize(NULL);
IDiaDataSource* pSource;
CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER,
IID_IDiaDataSource, (void**) &pSource);
:confused:
Очень надо..
А что это за класс такой DiaSource? Где он лежит? :)
Можно сделать из консоли командой:
Код:
regsvr32 yourFile.dll
Снимается регистрация вот так:
Код:
regsvr32 /u yourFile.dll
Цитата: RelB
А что это за класс такой DiaSource? Где он лежит? :)
msdia80.dll
это dia sdk
Цитата: hardcase
Зарегистрироваь класс пробовал?
Можно сделать из консоли командой:
Снимается регистрация вот так:
Можно сделать из консоли командой:
Код:
regsvr32 yourFile.dll
Снимается регистрация вот так:
Код:
regsvr32 /u yourFile.dll
угу. не помогло
Цитата: LifeKate
угу. не помогло
Хм... у меня следующий код работает.
Код:
#include "stdafx.h"
#include <dia2.h>
int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(0);
IDiaDataSource* pSource;
HRESULT hr = CoCreateInstance(CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDiaDataSource,
(void**) &pSource);
pSource->Release();
::CoUninitialize();
return 0;
}
#include <dia2.h>
int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(0);
IDiaDataSource* pSource;
HRESULT hr = CoCreateInstance(CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDiaDataSource,
(void**) &pSource);
pSource->Release();
::CoUninitialize();
return 0;
}
При этом никаких телодвижений с regsvr32 не предпринимал
У меня ашники и либы, те что к dia относятся, для 2003 студии, а компилирую в 2005. Может, здесь основная загвоздка? Длл - новая.
Где взять ашники и либы не представляю, по умолчанию их нет(у меня), в нете тоже невозможно найти :p :confused:
сделай #import этой библиотеке. студия по библитеке типов этого COM-объекта сгенерит два файлика, типа dia.tlh и dia.tli, в них будут заглушки с вызовами методов COM-объекта, а работать ты с ним сможешь как с объектом "обычного" класса. в dia.tlh будут задекларированы умные указатели (smart pointer), они прячут от тебя всё работу с COM'ом