Шаг 140 - Конвертация HEX - BIN и BIN - HEX

From: cYbErLoRd <evgenyh@peterlink.ru>
To: kaev@yandex.ru <kaev@yandex.ru>
Date: 26 августа 2001 г. 14:43
Subject: MFCByStep

Артём это ещё раз я.
Сейчас я попытаюсь объяснить тебе попонятнее зачем мне вообще это нужно:
Дело в том, что я хотел сам написать редактор сэйвов для 
Diablo II LOD (ну там всякие деньги скилы и т.д.). Сначала всё шло 
вроде неплохо,  но потом я понял, что не могу сделать так, чтобы 
программа открывала сэйв и в EDIT BOX записывала не символы, а 
именно HEX значения,  вот в чём весь прикол-то!

P.P.S Заранее благодарен!
Best regards,
 cYbErLoRd      mailto:evgenyh@peterlink.ru

Проблемы как таковой нет. Надо просто найти кто умеет это делать. А делать это умеет MAPI с помощью двух функций HexFromBin и ScBinFromHexBounded смотрим пример:

#include "stdafx.h"
#include "afxwin.h" 
#include "mapiutil.H"
#include "iostream.h"

#pragma comment(lib,"Mapi32.lib")

void main()
{
	CString s="Hello Hex & Bin";
	for (int x=0;x<s.GetLength();x++)
	{
		char c;
		c=s[x];
		BYTE b=c;
		char buffer[10];
		HexFromBin( &b,sizeof(b),(char*)&buffer);
		cout << buffer;
	}
	cout << endl;
	CString csnext("48656C6C6F2048657820262042696E");
	for (x=0;x<csnext.GetLength();x=x+2)
	{	
		BYTE bb;
		char buffer[2];
		buffer[0]=csnext[x];
		buffer[1]=csnext[x+1];
		ScBinFromHexBounded((char*)&buffer,&bb,sizeof(bb));
		char cc=bb;
		cout << cc;
	}
	cout << endl;
}

А вот результат конвертации туда сюда:

140.gif (3295 b)

Если использовать MFC, то можно создать пользовательскую DDX на основе этого кода подробнее написано в "Шаг 37 - Пользовательская функция DDX". В ней нужно описать эти действий по переводу в окно и из окна.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 27.08.2001