Конференция "Начинающим" » Ограничение длины строки для посылки в сообщении
 
  • Psycho © (17.01.09 19:32) [0]
    При посылке Юникод-строки через
    SendMessage(FindWindow(...), WM_COPYDATA, 0, LParam(@TCopyDataStruct))

    доходит (извлекается путём
    PChar(PCopyDataStruct.lpData)

    ) только часть строки: последние пара десятков символов или обрезаны, или заменены иероглифами. Что-то не поддерживает Юникод?

    Delphi 2009, Windows Vista
  • Сергей М. © (17.01.09 19:43) [1]
    Какое отношение сообщение WM_COPYDATA (и механизм его работы) имеет к Юникоду ?

    Никакого.

    Вопросы ?
  • Psycho © (17.01.09 19:46) [2]
    ну может LParam?..
  • Сергей М. © (17.01.09 21:12) [3]
    Не угадал.
  • Psycho © (17.01.09 21:37) [4]
    а что тогда? где могут теряться данные?
  • Сергей М. © (17.01.09 22:10) [5]
    В голове.
    Твоей.
  • Psycho © (17.01.09 23:03) [6]
    ок. какие?
  • Сергей М. © (17.01.09 23:14) [7]
    Любые.
  • Psycho © (17.01.09 23:25) [8]
    эх. ну подождём других мнений...
  • Сергей М. © (17.01.09 23:32) [9]

    > извлекается путём PChar


    Этот путь, наверно, большевики протоптали.
  • Psycho © (17.01.09 23:34) [10]
    а как правильно по фене?
  • Юрий Зотов © (18.01.09 00:49) [11]
    > Psycho ©   (17.01.09 19:32)  

    1. Сообщение WM_COPYDATA передает указанное количество байт по указанному адресу, и все. Что именно там содержится, строка unicode или еще что - ему это глубоко фиолетово.  

    2. Если строка обрезается, то либо на стороне передатчика Вы неверно заполняете структуру  COPYDATASTRUCT (показывайте код заполнения), либо на стороне приемника неверно ее интерпретируете (например, почему Вы используете приведение к PChar для строки unicode?).
  • Германн © (18.01.09 01:58) [12]

    > Psycho ©   (17.01.09 23:34) [10]
    >
    > а как правильно по фене?
    >

    Это запрещено правилами форума!
    :)
    Ты бы лучше включил бы мозги, чем "форсить" на форуме.
 
Конференция "Начинающим" » Ограничение длины строки для посылки в сообщении
Есть новые Нет новых   [134435   +8][b:0][p:0.001]