Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > DdeConnect


Автор: other_denis 12.5.2003, 13:05
Помогите пожалуйста!
Написал DDE сервер и DDE клиент. Запускаю DDE клиент, который в свою очередь запускает DDE сервер, а потом пытается с ним соединиться и проблема в том, что программа останавливается на DdeConnect(). Однако если из диспетчера задач закрыть DDE сервер, DdeConnec() возвращает ошибку DMLERR_NO_CONV_ESTABLISHED. Если же не запускать DDE сервер, то DdeConnect() сразу возвращат ошибку DMLERR_NO_CONV_ESTABLISHED. Где есть суслик :-) я никак не могу понять.
Работаю в WinMe.

Автор: other_denis 16.5.2003, 09:50
Проблема была в том, что я некоректно написал DDE сервер, а именно, использовал цикл while(fExit) для выхода из программы. В связи с чем приношу свои извинения за вышенаписанную просьбу о помощи.

if (DdeInitialize(...)
{MessageBox(0,"Ошибка инициализации сервера","Error",MB_OK|MB_ICONSTOP);}
else
{
//----------------------------------------------------------------------------
//если регистрация прошла успешно создаем дескрипторы объявленных ранее строк
//----------------------------------------------------------------------------
//дескриптор строки с именем сервиса ServerCOMService
hszServerCOMService = DdeCreateStringHandle(idInst,szServerCOMService,CP_WINANSI);
.
.
.
//----------------------------------------------------------------------------
//если все прошло успешно, регистрируем сервисы поддерживаемые приложением
//----------------------------------------------------------------------------
DdeNameService(idInst,hszServerCOMService,(HSZ)NULL,DNS_REGISTER);
if (DdeGetLastError(idInst)!=DMLERR_NO_ERROR)
{MessageBox(0,"Ошибка регистрации сервисa","Error",MB_OK|MB_ICONSTOP);
goto Exit;}
//----------------------------------------------------------------------------
//если все прошло успешно, ожидаем когда DDE клиент отправит команду на завершение работы сервера
//----------------------------------------------------------------------------
while(fExit);
//----------------------------------------------------------------------------
.
.
.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)