Impossible de convertir le type 'short[]' en 'System.IntPtr'
Bonjour,
je bloque actuellement sur la conversion d'un bout de code transformé du C++ au C#, j'obtient l'erreur suivante :
Citation:
Impossible de convertir le type 'short[]' en 'System.IntPtr' (avec le cas simillaire pour le byte[])
Si quelqu'un avait une solution et, en abusant un peu, une explication sur la dite solution, je lui en serait reconnaissant.
Merci à l'avance
En C++
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| void CInterpret :: SaveState(SaveFile& file)
{
//Check
file.WriteUInt(check_CInterpret);
file.WriteUShort(m_GamePart);
file.WriteUShort(m_CurrentGamePart);
m_pDisplay->SaveState(file);
file.WriteBytes((const void*)m_TabVars, sizeof(short)*es_MaxVars);
file.WriteBytes((const void*)m_OpStack, sizeof(ushort)*256);
file.WriteUShort((int)m_OpStackPoint-(int)m_OpStack);
file.WriteBytes((const void*)m_EntityFlags, sizeof(uchar)*es_MaxEntity);
file.WriteBytes((const void*)m_EntityFrameFlags, sizeof(uchar)*es_MaxEntity);
file.WriteBytes((const void*)m_EntityPoint, sizeof(short)*es_MaxEntity);
file.WriteBytes((const void*)m_EntityFrame, sizeof(short)*es_MaxEntity);
file.WriteInt(m_NbTrameToWait);
file.WriteInt(m_ProcessEntity);
file.WriteBool(m_showBuffer);
//Check
file.WriteUInt(check_CInterpret);
} |
En C#
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public void SaveState(ref SaveFile file)
{
//Check
file.WriteUInt((uint)GlobalMembersAw_Interpret.check_CInterpret);
file.WriteUShort(m_GamePart);
file.WriteUShort(m_CurrentGamePart);
m_pDisplay.SaveState(ref file);
file.WriteBytes((System.IntPtr)m_TabVars, sizeof(short) * (int)AnonymousEnum.es_MaxVars);
file.WriteBytes((System.IntPtr)m_OpStack, sizeof(ushort) * 256);
file.WriteUShort(m_OpStackPoint - m_OpStack);
file.WriteBytes((System.IntPtr)m_EntityFlags, sizeof(byte) * (int)AnonymousEnum.es_MaxEntity);
file.WriteBytes((System.IntPtr)m_EntityFrameFlags, sizeof(byte) * (int)AnonymousEnum.es_MaxEntity);
file.WriteBytes((System.IntPtr)m_EntityPoint, sizeof(short) * (int)AnonymousEnum.es_MaxEntity);
file.WriteBytes((System.IntPtr)m_EntityFrame, sizeof(short) * (int)AnonymousEnum.es_MaxEntity);
file.WriteInt(m_NbTrameToWait);
file.WriteInt(m_ProcessEntity);
file.WriteBool(m_showBuffer);
//Check
file.WriteUInt(GlobalMembersAw_Interpret.check_CInterpret);
} |