Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

COM. создание объектов.

26K
06 мая 2007 года
LifeKate
6 / / 03.05.2007
Подскажите плиз!!! Что за ошибка "Класс не зарегистрирован", и что с ней делать?

Пишу

CoInitialize(NULL);
IDiaDataSource* pSource;
CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER,
IID_IDiaDataSource, (void**) &pSource);

:confused:

Очень надо..
395
07 мая 2007 года
RelB
367 / / 09.11.2002
Цитата: LifeKate
Подскажите плиз!!! Что за ошибка "Класс не зарегистрирован", и что с ней делать?

Пишу

CoInitialize(NULL);
IDiaDataSource* pSource;
CoCreateInstance(CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER,
IID_IDiaDataSource, (void**) &pSource);

:confused:

Очень надо..

А что это за класс такой DiaSource? Где он лежит? :)

5
07 мая 2007 года
hardcase
4.5K / / 09.08.2005
Зарегистрироваь класс пробовал?
Можно сделать из консоли командой:
 
Код:
regsvr32 yourFile.dll

Снимается регистрация вот так:
 
Код:
regsvr32 /u yourFile.dll
26K
07 мая 2007 года
LifeKate
6 / / 03.05.2007
Цитата: RelB
А что это за класс такой DiaSource? Где он лежит? :)


msdia80.dll
это dia sdk

26K
07 мая 2007 года
LifeKate
6 / / 03.05.2007
Цитата: hardcase
Зарегистрироваь класс пробовал?
Можно сделать из консоли командой:
 
Код:
regsvr32 yourFile.dll

Снимается регистрация вот так:
 
Код:
regsvr32 /u yourFile.dll



угу. не помогло

395
08 мая 2007 года
RelB
367 / / 09.11.2002
Цитата: 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;
}

При этом никаких телодвижений с regsvr32 не предпринимал
26K
09 мая 2007 года
LifeKate
6 / / 03.05.2007
Вот всё равно не работает((
У меня ашники и либы, те что к dia относятся, для 2003 студии, а компилирую в 2005. Может, здесь основная загвоздка? Длл - новая.
Где взять ашники и либы не представляю, по умолчанию их нет(у меня), в нете тоже невозможно найти :p :confused:
355
10 мая 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
сделай #import этой библиотеке. студия по библитеке типов этого COM-объекта сгенерит два файлика, типа dia.tlh и dia.tli, в них будут заглушки с вызовами методов COM-объекта, а работать ты с ним сможешь как с объектом "обычного" класса. в dia.tlh будут задекларированы умные указатели (smart pointer), они прячут от тебя всё работу с COM'ом
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог