Режим DDE "горячий", "теплый" или по явному запросу? - страница 6

 

Еще раз благодарю всех за доходчивые и доступные объяснения. Наступило некоторое понимание сложностей DDE-обмена и подводных камней в его реализации. Аж жуть взяла. Вдохновила убежденность Рената о высокой достоверности получаемых по нему данных.

Буду реализовывать в стандартно предлагаемых вариантах. Уровнем ниже мне не потянуть. Одна обработка ошибок и исключений меня погубит. Когда видишь профессиональный код, диву даешься - на пару-другую строк эффективных действий по десятку (если не по сотне) обработок событий, которых может никогда не произойдет, но учесть их надо. Спасибо за науку.

 
Chen:
Еще не забывай, что в Target-е может быть несколько измененных ячеек. Т.е. цикл по ним надо.
Эт я так, на всяк случай ;)
 
komposter:
Chen:
Еще не забывай, что в Target-е может быть несколько измененных ячеек. Т.е. цикл по ним надо.
Эт я так, на всяк случай ;)


Спасиб. Это я раньше циклом обрабатывал все интересующие меня ячейки при изменении листа. А сейчас совсем просто, через Select Case. До кучи можно и листов в книге насоздавать (ограничено только памятью и ресурсами), да и для каждого ДЦ свою книгу. Чтобы тики не пропадали на активном рынке, я каждый инструмент запихну в персональный лист с единственной ячейкой BID.

Млин! Млин! Млин! Это ведь можно было и без Target сделать! Во засада. .. Тупой я...Безнадежно тупой. Как в анекдоте про девочку-имбецилла: "А сто, эта тожа мозна?" Ведь все сам знаю, а воспользоваться не могу. Как дали этот шаблон DDE_Sample, так я на нем все и делал. Это все разработчики виноваты ;) - не объяснили, что так тоже можно :)

С Target, конечно изящнее и грамотнее.

 
Старенькая добрая книга Ч.Петзольд "Программирование для Windows95" с примерами DDE сервера и клиента на C. Друзья подогнали. Ну очень доходчиво.
Файлы:
1.zip  2805 kb
 
VBAG:
Старенькая добрая книга Ч.Петзольд "Программирование для Windows95" с примерами DDE сервера и клиента на C. Друзья подогнали. Ну очень доходчиво.


Дзенькуе, пан.

Высосал. Очень полезно. Доходчиво и доступно разжевано. Как раз для начинающих. Мне бы раздел про DDE перед стартом этой ветки прочитать... Где ж Вы были? :)

Буду изучать. Попутно ссылочка на первый том. И на огромную библиотеку Ихтика. Млин,чего там только нет! 7000 позиций. Ссылочка на компьютерную тематику. Можно в корне посмотреть много всякого.

 

А вот обе части + CD с примерами и кодом

Взято у Ихтика http://ihtik.2x4.ru/complit_22janv2007/complit_22janv2007_5781.rar 8M

 
Chen:
VBAG:
Старенькая добрая книга Ч.Петзольд "Программирование для Windows95" с примерами DDE сервера и клиента на C. Друзья подогнали. Ну очень доходчиво.


Дзенькуе, пан.

Высосал. Очень полезно. Доходчиво и доступно разжевано. Как раз для начинающих. Мне бы раздел про DDE перед стартом этой ветки прочитать... Где ж Вы были? :)

Буду изучать. Попутно ссылочка на первый том. И на огромную библиотеку Ихтика. Млин,чего там только нет! 7000 позиций. Ссылочка на компьютерную тематику. Можно в корне посмотреть много всякого.

Дык, под лежачий камень, как известно, вода не течет - у самого не было. Друзья подогнали. Первый то же есть. Матчасть будем учить.
 

Коль уж за C++, вот случайно в Сети наткнулся. Сайт NoNaMe авторитетный. http://onlybest.nnm.ru/windows_dlya_sozdanie_effektivnyh_win32prilozhenij

Год выпуска: 2004
Автор: Джеффри Рихтер
Издательство: "Питер" + "Русская Редакция"
ISBN: 5-272-00384-5
Формат: PDF
Качество: OCR с ошибками
Количество страниц: 722

 

Уважаемые разработчики и вообще, знающие люди!

В каком, все-таки, режиме работает dde метатрейдера? В справке написано:

" Котировки по DDE выдаются только по приходе новых тиков (режим ADVISE), а не сразу же по запросу (режим REQUEST) с выдачей последней известной цены.",

однако, из матлаба я смог забирать котировки именно по request, а advise не работает. почему, и как запустить advise?

 

Подскажите, как реализовать получение котир через DDE на с++?

Делаю так:


HDDEDATA CALLBACK DDECallBack(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2);


DdeInitialize(&inst, DDECallBack, CBF_FAIL_ALLSVRXACTIONS | APPCMD_CLIENTONLY, 0);

service = DdeCreateStringHandle(inst, "MT4", CP_WINANSI);
topic = DdeCreateStringHandle(inst, "BID", CP_WINANSI);
conv = DdeConnect(inst, service, topic);

symbol = DdeCreateStringHandle(inst, "USDCHF", CP_WINANSI);
DdeClientTransaction(NULL, 0, conv, symbol, CF_TEXT, XTYP_ADVSTART, TIMEOUT_ASYNC, NULL);


Все отрабатывает без ошибок, но callback не вызывается. Как понимаю в нем должны быть данные.


upd: все решилось созданием оконного приложения, в консоли без прокачки виндовых сообщений не работает.