Ho un'eccezione numerica in release, ma funziona correttamente in debug
In questo esempio di codice, t.MemSogliaBassa è UInteger type; il suo valore è maggiore di 65535.
iCompiled.operando() è un array di ushort
Codice eseguito:
iCompiled.operando(4) = CUShort(t.MemSogliaBassa)
iCompiled.operando(5) = CUShort(t.MemSogliaBassa >> 16)
Eseguendo il codice in Debug, iCompiled.operando(4) e iCompiled.operando(5) hanno i valori attesi.
Eseguendo il codice in Release, la linea iCompiled.operando(4) = CUShort(t.MemSogliaBassa) genera eccezione numerica, mandando in crash il programma
La soluzione è stata: iCompiled.operando(4) = CUShort(t.MemSogliaBassa) => iCompiled.operando(4) = CUShort(t.MemSogliaBassa And &HFFFFUI)
Ora, se ushort genera eccezione se l'argomento non è un oggetto System.UInt16, dovrebbe farlo sia in debug che in release!!!!