Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Отладка DDEML-приложений - часть 3


Закройте приложение DDEMLCL и сделайте активным окно "String Handles". Теперь счетчик использования всех трех идентификаторов строк будет равен 1, так как клиент освободил эти идентификаторы. Однако сервер продолжает их использовать, поэтому идентификаторы не уничтожаются.

Окно "Active Conversation" очистится, так как теперь в системе нет активных каналов связи (если только их не создали какие-либо другие приложения).

Теперь завершите приложение DDEMLSR. Окна "String Handles" и "Registered Service" теперь тоже очистятся, так как все строки уничтожены, а сервис больше не доступен.

Завершите приложение DDESpy и загрузите в любой текстовый редактор файл, содержащий протокол отладки. Мы приведем фрагменты такого файла, полученного в результате выполнения описанных выше манипуляций с приложениями DDEMLSR и DDEMLCL.

Первые три строки появились в результате запуска сервера DDEMLSR. Они содержат сведения о том, что были созданы три идентификатора строк для копии приложения с идентификатором 0x458f. Указано время события (от момента запуска Windows), идентификаторы созданных строк (c0d0, c0d5, c2d8) и содержимое строк.

Task:0x458f,Time:7766779,String Handle Created:c0d0(BMPServer) Task:0x458f,Time:7766779,String Handle Created:c0d5(BMPFile) Task:0x458f,Time:7766834,String Handle Created:c2d8(DDEData)

Далее идут строки, описывающие вызов функции обратного вызова сервера:

Task:0x458f Time:7766834 Callback: Type=Register, fmt=0x0("?"), hConv=0x0, hsz1=0xc0d0("BMPServer") hsz2=0x5c40c0d0("BMPServer:(5c40)"), hData=0x0, dwData1=0x0, dwData2=0x0 return=0x0

Здесь функция обратного вызова была вызвана для выполнения регистрации сервиса "BMPServer". Вы можете определить содержимое всех параметров функции на момент вызова.

В следующем фрагмента отражен факт посылки данных серверу:

Task:0x458f Time:7769470 hwndTo=0x5f24 Message(Posted)=Poke: hwndFrom=0x5e44, lParam=0xc2d82aaf status=2000(fRelease ) fmt=0x1("CF_TEXT") Data= "c:\nicebmp\sky.bmp" Item=0xc2d8("DDEData")




Начало  Назад  Вперед



Книжный магазин