Quindi avrei bisogno di una mano che in pratica sarebbe la funzione scritta . Non sono abituato e non mi piace chiedere la pappa pronta, pero' so riconoscere i miei limiti e credo che tutto sommato per chi conosce questo linguaggio molto bene non dovrebbe essere difficile da buttare giu' una funzione simile. Concettualmente, per quello che ho capito si tratta di leggere i singoli caratteri del testo in input, trasformali nel loro valore esadecimale e sia accodarli ad una stringa come coppia di caratteri che rappresentano il valore esadecimale sia usarli nel calcolo del carattere di controllo, dopo aver aggiunto i due codici di controllo. Alla fine uscire con quella stringa. Uno script che si avvicina a quello che mi serve puo' essere :
__gc class HexTest
{
static Char hexDigits[] = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

public:
static String* ToHexString(Byte bytes[]) {
Char chars[] = new Char[bytes->Length * 2];
for (int i = 0; i < bytes->Length; i++) {
int b = bytes[i];
chars[i * 2] = hexDigits[b >> 4];
chars[i * 2 + 1] = hexDigits[b & 0xF];
}
return new String(chars);
}
};

int main() {

Byte b[] = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF};
Console::WriteLine(HexTest::ToHexString(b));
}
pero' questo mi costruisce una classe e non una funzione che poi potrei inglobare nella struttura di compilazione di una dll. Diciamo che piu' o meno si avvicina ad un primo passo del problema.