IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> как вывести BYTE
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 115
Пол: Мужской
Реальное имя: Александр

Репутация: -  1  +


Подскажите пожалуйста как вывести переменную BYTE в окно win32 API. Я использую Crypto API и функция CryptGetHashParam(hHash, HP_HASHVAL, (BYTE*)hash_value, &count, 0); возвращает в переменной hash_value тип BYTE*. Так вот просто TextOut(hdc,0,0,hash_value,strlen(hash_value)); вот так вот вывести не получается...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Во-первых, не хватает информации, в какой кодировке записан файл, который читается.

Во-вторых, MSDN не пробовал внимательно читать?
ReadFile function явно говорит, что
Цитата
lpNumberOfBytesRead [out, optional]

A pointer to the variable that receives the number of bytes read when using a synchronous hFile parameter. ReadFile sets this value to zero before doing any work or error checking. Use NULL for this parameter if this is an asynchronous operation to avoid potentially erroneous results.

This parameter can be NULL only when the lpOverlapped parameter is not NULL.
У тебя файл открывался без FILE_FLAG_OVERLAPPED, так что придется делать вот так:
	DWORD wasRead;
ReadFile (hFile1, szBuf2, dwFileSize, &wasRead, NULL);
по крайней мере.

Цитата
Ладно, все равно не получается.
Что там может не получаться? Как пробовал, показывай.

P.S. Совсем забыл еще один момент. Обратные слэши должны дублироваться, т.е. "C:\\text.txt";

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 115
Пол: Мужской
Реальное имя: Александр

Репутация: -  1  +


Цитата(IUnknown @ 8.02.2012 16:23) *

Во-первых, не хватает информации, в какой кодировке записан файл, который читается.

Во-вторых, MSDN не пробовал внимательно читать?
ReadFile function явно говорит, что
У тебя файл открывался без FILE_FLAG_OVERLAPPED, так что придется делать вот так:
	DWORD wasRead;
ReadFile (hFile1, szBuf2, dwFileSize, &wasRead, NULL);
по крайней мере.

Что там может не получаться? Как пробовал, показывай.

P.S. Совсем забыл еще один момент. Обратные слэши должны дублироваться, т.е. "C:\\text.txt";

Спасибо что занимаетесь мной, но видимо я чего-то не понимаю, скорее всего глупость какую-нибудь опять делаю и увидеть не могу, но все равно не получается.
И с флагом FILE_FLAG_OVERLAPPED и без него не получается и ReadFile как написано и как у меня тоже ни хрена. Файл был первоначально в ANSI, перекодировал его в UNICODE, все равно иероглифы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата(Янычар @ 8.02.2012 16:18) *
И с флагом FILE_FLAG_OVERLAPPED и без него не получается и ReadFile как написано и как у меня тоже ни хрена. Файл был первоначально в ANSI, перекодировал его в UNICODE, все равно иероглифы.
Не воспроизводится.

Текстовый файл сохранен в ANSI, проект Юникодный:
Прикрепленное изображение
Что я не так делаю?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 115
Пол: Мужской
Реальное имя: Александр

Репутация: -  1  +


Вижу что все так. Для справедливости повторил все что написано в коде, который видно на снимке, результат тот же. Пробовал и в Юникоде сохранять текстовый файл и в анси, все одно. Если что то в свойствах проекта установлен юникод. Вот еще раз код:

HANDLE hFile1;
LPCTSTR dataToSignFile=TEXT("C:\\text.txt");
hFile1 = CreateFileW (dataToSignFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwFileSize = GetFileSize (hFile1, NULL);
TCHAR* szBuf2= static_cast<TCHAR*>(malloc(dwFileSize + 1));
ZeroMemory(szBuf2, dwFileSize + 1);
DWORD wasRead;
ReadFile (hFile1, szBuf2, dwFileSize, &wasRead, NULL);
CloseHandle(hFile1);
MessageBoxW(hWnd,(LPCTSTR)szBuf2,_T("hel"), MB_OK|MB_ICONERROR);


Прикрепленное изображение

Сообщение отредактировано: Янычар -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Янычар   как вывести BYTE   8.02.2012 14:51
IUnknown   Сконвертировать число в строку (либо что-то из сер…   8.02.2012 15:57
Янычар   Ладно, все равно не получается. Тогда другой вопро…   8.02.2012 19:44
IUnknown   Во-первых, не хватает информации, в какой кодировк…   8.02.2012 20:23
Янычар   Во-первых, не хватает информации, в какой кодиров…   8.02.2012 21:18
IUnknown   И с флагом FILE_FLAG_OVERLAPPED и без него не полу…   8.02.2012 21:32
Янычар   Вижу что все так. Для справедливости повторил все …   8.02.2012 22:24
IUnknown   Краем глаза заметил stdafx.cpp в Блокноте. VisualC…   8.02.2012 22:44
Янычар   Краем глаза заметил stdafx.cpp в Блокноте. Visual…   8.02.2012 22:50
IUnknown   Почти всегда GCC (через Code::Blocks), иногда пров…   8.02.2012 23:12
Янычар   Почти всегда GCC (через Code::Blocks), иногда про…   9.02.2012 21:11
TarasBer   > А я наивно думал что у них лучший компилятор.…   9.02.2012 13:24
Янычар   В Code::Block тоже не получается ничего, а точнее …   9.02.2012 21:44
IUnknown   Хочешь, я присоединю свой EXE-шник, посмотри, зара…   9.02.2012 22:10
Янычар   Хочешь, я присоединю свой EXE-шник, посмотри, зар…   9.02.2012 22:12
IUnknown   Вот сам проект (хотя там же все дефолтное, я добав…   9.02.2012 22:30
Янычар   Вот сам проект (хотя там же все дефолтное, я доба…   10.02.2012 0:12


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.05.2024 0:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name