powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема при работе с Com-сервером
4 сообщений из 4, страница 1 из 1
Проблема при работе с Com-сервером
    #38275196
NeverWriter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток! Столкнулся с проблемой использования COM-сервера в приложении, написанном на С++ (VS2005).
Сервер разработан на Delphi (XE) и имеет следующую структуру: главный ком-объект (А), который при запуске автоматически создает дочерние объекты (В и С).
У главного ком-объекта A имеются несколько методов, в том числе GetIB и GetIC, возвращающие ссылки на интерфейсы IB и IC объектов B и C.
Создание главного ком-объекта A и вызов его методов кроме GetIB и GetIC производится успешно. При использовании GetIB GetIC получаю аксесс виол.
Имеется также аналогичное приложение-клиент, выполненное в Delphi XE, в нем все работает отлично - указатели на интерфейсы B и C передаются.
В чем может быть проблема?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
COMServABC::IAPtr Aobj;
HRESULT hr = ::CoCreateInstance(__uuidof(COMServABC::A), NULL, CLSCTX_INPROC_SERVER ||
CLSCTX_LOCAL_SERVER,__uuidof(COMServABC::IA),reinterpret_cast<void **>(&Aobj));

if (SUCCEEDED(hr))
{
	std::cerr << "Success creating instance\n";
        IA->OtherMethod(); // вызов работает
    	COMServABC::IBPtr Bobj = IA->GetIB(); // аксесс виол
}
	else
		std::cerr << "Error creating instance\n";
...
Рейтинг: 0 / 0
Проблема при работе с Com-сервером
    #38275204
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeverWriter,

Aobj или IA ?
...
Рейтинг: 0 / 0
Проблема при работе с Com-сервером
    #38275220
NeverWriter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда делал пример совершил опечатку. Конечно Aobj, а не IA.
CoCreateInstance проходит без ошибок

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
COMServABC::IAPtr Aobj;
HRESULT hr = ::CoCreateInstance(__uuidof(COMServABC::A), NULL, CLSCTX_INPROC_SERVER ||
CLSCTX_LOCAL_SERVER,__uuidof(COMServABC::IA),reinterpret_cast<void **>(&Aobj));

if (SUCCEEDED(hr))
{
	std::cerr << "Success creating instance\n";
        Aobj->OtherMethod(); // вызов работает
    	COMServABC::IBPtr Bobj = Aobj->GetIB(); // аксесс виол
}
	else
		std::cerr << "Error creating instance\n";
...
Рейтинг: 0 / 0
Проблема при работе с Com-сервером
    #38277935
super-code
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeverWriter,

CoInitialize?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема при работе с Com-сервером
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]