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:
e un metodo cosi' definito: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;
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:__declspec(dllexport) int writeMessage(serialMessage msg);
dove toWrite, ovviamente, e' di tipo serialMessage e hinstLib e' opportunamente definito.codice:typedef int (*WRITEMESSAGE)(serialMessage); WRITEMESSAGE writeMessage = (WRITEMESSAGE)GetProcAddress(hinstLib, L"writeMessage"); writeMessage(toWrite);
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

Rispondi quotando