Io espliciterei in entrambi i progetti la convenzione di chiamata della funzione, e mi assicurerei che la struttura e tutte le #define che la influenzano sia perfettamente uguale. Controlla anche se per caso non hai impiegato in un progetto (ma non nell'altro) un #pragma pack prima della dichiarazione della struttura.
Può essere invece che magari ci sia un problema nella funzione di log: hai collaudato la procedura in questione con dati noti da direttamente dentro il progetto della dll? E ancora, hai provato ad effettuare il debug del codice della dll quando questo viene richiamato dall'eseguibile?