Salve a tutti.
Ambiente Visual Studio 2005, opzione di compilazione /TC
Ho un progetto che produce una DLL e ha:
una struttura dati cosi' definita:
codice:
typedef struct _serialMessage {
unsigned char lep;
unsigned char idt[IDT_LENGHT];
unsigned char cid[CLUSTER_LENGHT];
unsigned char lenPayload;
unsigned char payload[MAX_PAYLOAD_DATA];
unsigned char hotp[HOTP_LEN];
unsigned char lqi;
unsigned char rssi;
} serialMessage;
e un metodo cosi' definito:
codice:
__declspec(dllexport) int writeMessage(serialMessage msg);
Il prgetto compila correttamente la DLL che poi viene utilizzata in un altro progetto in cui la struttra dati e' definita come prima mentre il metodo e' dosi' definito e usato:
codice:
typedef int (*WRITEMESSAGE)(serialMessage);
WRITEMESSAGE writeMessage = (WRITEMESSAGE)GetProcAddress(hinstLib, L"writeMessage");
writeMessage(toWrite);
dove toWrite, ovviamente, e' di tipo serialMessage e hinstLib e' opportunamente definito.
La funzione writeMessage scrive un log su un file di testo e quello che noto e' che debuggando la toWrite e' correttamente valorizzata mentre nel log della writeMessage (dove i valori salvati nella toWrite vengono usati) mi stampa dei valori sbagliati, tutti a 0 come se nel passaggio come parametro della struttura dati la DLL avesse perso qualcosa.
Che puo' essere successo?
Ciao e grazie
Sandro