Bonjour,
je bloque actuellement sur la conversion d'un bout de code transformé du C++ au C#, j'obtient l'erreur suivante :
Si quelqu'un avait une solution et, en abusant un peu, une explication sur la dite solution, je lui en serait reconnaissant.Impossible de convertir le type 'short[]' en 'System.IntPtr' (avec le cas simillaire pour le byte[])
Merci à l'avance
En C++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Partager