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;
}
А вот результат конвертации туда сюда:

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