Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2013, 05:37   #1
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию Проблема с кодировкой в WM_COPYDATA

Всем hi^)

Стоит задача передать из программы на c++ строку в программу на Delphi. Использую SendMesssage + WM_COPYDATA.
Проблема при получении строки: кодировка китайская какая-то))

Отправляю:
Код:
void func(const char *str,...)
{
        char params[1024];
        va_list va;
        va_start(va, str);
        _vsnprintf(params,1024,str,va);
        COPYDATASTRUCT data;
        const AnsiString sTest = params;
        data.cbData = sTest.Length() + 1;
        data.lpData = sTest.c_str();
        SendMessage((void*)1574710,WM_COPYDATA,0,(LPARAM)&data);
        //Form1->Edit1->Text = sTest.c_str();
}
Получаю:
Код:
procedure TForm1.onMessgage(var Msg: TWMCopyData);
var temp:array[0..1023] of Char;
begin
  StrLCopy(temp,Msg.CopyDataStruct.lpData,Msg.CopyDataStruct.cbData);
  ShowMessage(temp);
end;
Что я не так делаю?
Mr_ViK вне форума Ответить с цитированием
Старый 02.08.2013, 06:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

версия Делфи?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.08.2013, 07:12   #3
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию

Delphi XE 15, C++ Builder 6
Mr_ViK вне форума Ответить с цитированием
Старый 02.08.2013, 07:17   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

эммм, используйте AnsiChar то, вы же Ansi отправляли.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.08.2013, 08:51   #5
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
По умолчанию

Спасибо, заработало)
Mr_ViK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с кодировкой Дима я Общие вопросы Delphi 6 14.06.2013 23:38
Проблема с кодировкой AMDemon Общие вопросы по Java, Java SE, Kotlin 4 07.12.2011 09:01
Проблема с кодировкой cheef PHP 2 09.03.2011 13:12
Проблема получением сообщения WM_COPYDATA kleop Win Api 0 12.03.2010 21:58
Проблема с кодировкой... SynonymMixer Общие вопросы Delphi 6 28.01.2009 15:40