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". В ней нужно описать эти действий по переводу в окно и из окна.