Форум программистов, компьютерный форум CyberForum.ru

CoGetClassObject и клиенты на VB не работают - C++

Войти
Регистрация
Восстановить пароль
 
Salor Papay
0 / 0 / 0
Регистрация: 19.05.2008
Сообщений: 8
24.05.2008, 19:25     CoGetClassObject и клиенты на VB не работают #1
Взял книгу COM и ATL 3.0, разобрался, наклепал все как в книге, зарегестрировал сервак, а клиент на с++ его брать не хочет. CoGetClassObject не работает, что показывает анализ возвращаемого значени, отседова и клиенты на VB не работают. Может у кого возникала подобна проблема, даже может по этойже книге. Если решили или знаете как, подскажите пожалуйста....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2008, 19:25     CoGetClassObject и клиенты на VB не работают
Посмотрите здесь:

Таймеры не работают C++
C++ Не работают конструкторы....
C++ Условия не работают
If не работают C++
Как работают драйвера? C++
Не работают вложенные циклы C++
Не работают пачкейсы C++
Не работают флаги C++
C++ Не работают формы
C++ Как работают ссылки
C++ Не работают цыклы for
C++ % не работают

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vita
Сообщений: n/a
25.05.2008, 08:40     CoGetClassObject и клиенты на VB не работают #2
Проблем не возникало. Напиши, как обращается к объекту с++ клиент. И как VB клиенты.
Salor Papay
0 / 0 / 0
Регистрация: 19.05.2008
Сообщений: 8
26.05.2008, 02:38  [ТС]     CoGetClassObject и клиенты на VB не работают #3
Короче, код такой

рr=CoGetClassObject(CLSID_CoCar,CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory,(void**)&pCf);
hr=CoCreateInstance(clsid,NULL,CLSCTX_INPROC,IID_ICreateCar,(LPVOID*)&pCc);
if(FAILED(hr))
cout<<'хрен там...';
попробовал, по GUID кокласса в случае фабрики, потом из ProgID вытащил его же, что прошло нормально, т.е. в реестре вроде как все прописалось, но вот CoInitialize нормально действует, а объекты находить не хочет. Почему хоть убей не знаю. Дума глюк с реестром, или же чего-то в настройках не хватает. у тебя книга та же, или другая? на всякий случай еще кидаю файлы .reg b .def

REGEDIT
HKEY_CLASSES_ROOT1lab.CoCar.1 = Chapter 6 1lab CoCar
HKEY_CLASSES_ROOT1lab.CoCar.1CurVer = 1lab.CoCar.1
HKEY_CLASSES_ROOT1lab.CoCar.1CLSID = {BDA367A4-39A8-11d6-BA0A-525405F69DBE}
HKEY_CLASSES_ROOTCLSID{BDA367A4-39A8-11d6-BA0A-525405F69DBE} = Chapter 6 1lab CoCar
HKEY_CLASSES_ROOTCLSID{BDA367A4-39A8-11d6-BA0A-525405F69DBE}ProgID = 1lab.CoCar.1
HKEY_CLASSES_ROOTCLSID{BDA367A4-39A8-11d6-BA0A-525405F69DBE}VersionIndependentProgID = 1lab.CoCar
HKEY_CLASSES_ROOTCLSID{BDA367A4-39A8-11d6-BA0A-525405F69DBE}InprocServer32 = D:520Тарасvc++MyProject1labDebug1lab.dll
HKEY_CLASSES_ROOTCLSID{BDA367A4-39A8-11d6-BA0A-525405F69DBE}NotInsertable

LIBRARY '1LAB'
DESCRIPTION '1LAB Windows Dynamic Link Library'

EXPORTS

DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
Жду ответа поскорее...
Vita
Сообщений: n/a
26.05.2008, 08:42     CoGetClassObject и клиенты на VB не работают #4
Я предположу, что GUID-ы все правильные. Так вот.
1. КлассФактори создается, что с ее помощью создавать экземпляры класса. Вот таким образом:
Код
hr=CoGetClassObject(CLSID_CoCar,CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory,(void**)pCf);
if( SUCCEEDED(hr) )
{
  hr = pCf->CreateInstance(NULL,IID_ICreateCar,(void**)&pCc);
  pCf->Release();
}
if( SUCCEEDED(hr) )
  // здесь pCc содержит указатель на объект
2. Можно создавать экземпляры класса без классфактори
Код
hr=CoCreateInstance(CLSID_CoCar,NULL,CLSCTX_INPROC,IID_ICreateCar,(void**)&pCc);
if( SUCCEEDED(hr) )
  // здесь pCc содержит указатель на объект
Если ни один вариант не сработает, напиши коды ошибок hr. Будем дальше разбираться.
Salor Papay
0 / 0 / 0
Регистрация: 19.05.2008
Сообщений: 8
26.05.2008, 14:34  [ТС]     CoGetClassObject и клиенты на VB не работают #5
Взял к препода проект зарегестрировал, вроде заработало, просто вначале пути в рег-файле неправильно прописал, но у меня чего-то не -так , все равно не хочет, пока разберусь, если что сообщу, так опыта ради...
Yandex
Объявления
26.05.2008, 14:34     CoGetClassObject и клиенты на VB не работают
Ответ Создать тему
Опции темы

Текущее время: 14:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru