Quantcast
Channel: Visual Basic Tips and Tricks
Viewing all articles
Browse latest Browse all 2212

HELP conversione strutture dati

$
0
0
Ciao a tutti, sono un nuovo iscritto al forum e ammetto che siete la mia unica speranza. 

Per un cliente sto facendo manutenzione ad un vecchio software sviluppato in VB6. Questo software deve colloquiare con un lettore di Smartcard tramite una DLL C++. 

Sono riuscito a far funzionare tutto, tranne una funzione della DLL stessa che presenta sia in input che in output delle strutture dati che non riesco a replicare; infatti il programma crasha dando una exception c0000005 (che è l'accesso negato alla ram) quando passo i parametri alla funzione. 

I dati che devo tradurre da C++ a VB6 sono così strutturati: 

Struttura dati per invio comando al device: 

typedef struct { 

BYTE bCommandCode; 

BYTE bParameterCode; 

struct { 

DWORD dwSize; 

LPBYTE lpbBody; 

Data; 

COMMAND, *LPCOMMAND; 

---------------------- 

Struttura dati per ritorno esito del comando dal device: 

typedef enum { 

PositiveReply, 

NegativeReply, 

ReplyReceivingFailure, 

CommandCancellation, 

ReplyTimeout, 

REPLY_TYPE, *LPREPLY_TYPE; 

typedef struct { 

BYTE bCommandCode; 

BYTE bParameterCode; 

struct { 

BYTE bSt1; 

BYTE bSt0; 

StatusCode; 

struct { 

DWORD dwSize; 

BYTE bBody[ MAX_DATA_ARRAY_SIZE]; 

Data; 

POSITIVE_REPLY, *LPPOSITIVE_REPLY; 

typedef struct { 

BYTE bCommandCode; 

BYTE bParameterCode; 

struct { 

BYTE bE1; 

BYTE bE0; 

ErrorCode; 

struct { 

DWORD dwSize; 

BYTE bBody[ MAX_DATA_ARRAY_SIZE]; 

Data; 

NEGATIVE_REPLY, *LPNEGATIVE_REPLY; 

typedef struct { 

REPLY_TYPE replyType; 

union { 

POSITIVE_REPLY positiveReply; 

NEGATIVE_REPLY negativeReply; 

message; 

REPLY, *LPREPLY; 

---------------------- 

Le ho provate tutte, ma non riesco a rigenerare la stessa struttura dati che la DLL necessita, sia per il comando che per la risposta. Se qualcuno sa come tradurre queste informazioni gliene sarei eternamente grato. Un saluto a tutti...


Viewing all articles
Browse latest Browse all 2212