Interop per LARGE_INTEGER

domenica 13 gennaio 2008 - 10.04

JohnAsh Profilo | Junior Member

Ciao a tutti,

premetto, se può essere utile, che il codice non gestito in questione è relativo ad un driver per Windows.

Il driver implementa una struttura contenente un campo di tipo LARGE_INTEGER (rappresentazione di numeri a 64bit con segno), io devo richiamare una funzione dal codice gestito a cui passare questa struttura come argomento.

Consultando MSDN mi dice che LARGE_INTEGER è una union ma che posso tranquillamente usare il tipo __int64 in quanto è equivalente.

Ho quindi "riprodotto" la struttura non gestita nella mia applicazione managed e ho richiamato la funzione di mio interesse. Nella mia applicazione managed, il campo LARGE_INTEGER è di tipo __int64. Il codice viene compilato e l'applicazione viene eseguita correttamente.

Il problema è che dall'applicazione managed io assegno al campo LARGE_INTEGER il valore "33" e quando invece stampo il valore dal codice unmanaged mi viene restituito "57".

Da cosa può dipendere? Qualcuno si è mai trovato di fronte ad un problema simile?

Saluti!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5