ReadFile () Вывод в диалог редактирования WinAPI - PullRequest
1 голос
/ 10 июля 2010

Хорошо, давайте посмотрим, имеет ли это смысл. Сегодня, когда я начал работать над небольшим проектом, я столкнулся с ошибкой, с которой я не могу справиться. Функция программы, над которой я работаю, заключается в чтении данных из канала (который является выводом другой программы) и обновлении диалогового окна управления HWND («правка») с помощью WinAPI. Теперь я успешно обновил диалог: вроде. Если я отправляю символьный буфер из функции :: ReadFile () в диалог, я получаю правильный вывод, но с кучей лишних символов, которые мне не нужны. Итак, как я могу просто раздеть его до результата, который я ищу, или есть лучший способ выполнить то, что я пытаюсь? Возможно взять вывод и WriteFile (); или что-то похожее на расшифрованный текст?

Вот что происходит:

некоторый вывод ... 'Hola Mondo' означает ... Привет, слово! ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ $

Вот что я хочу, чтобы произошло:

некоторый вывод ... 'Hola Mondo' означает ...

Привет, слово!

Большое спасибо за вашу помощь!

С уважением,
Деннис М.

Ответы [ 3 ]

4 голосов
/ 10 июля 2010

Проверьте выходной аргумент «Чтение байтов» файла ReadFile, чтобы узнать, какова длина строки, затем поместите завершающий символ NUL (`'\ 0') в это смещение.

0 голосов
/ 10 июля 2010

Похоже, вам просто нужно добавить символ завершения '\ 0' в строку, которую вы передаете в элемент управления редактирования.

Но в вашем вопросе должен быть указан код, включающий ReadFile() и место передачи данных в элемент управления для редактирования, чтобы кто-то мог сказать наверняка (и дать более точное предложение).

0 голосов
/ 10 июля 2010

Скорее всего, вы не завершаете 0 буфером перед передачей его в функцию обновления текста.

Проверьте 'Пример: открыть файл для чтения' из здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...