Pb de pointeur : passage C++ au C#
Bonjour ,
Je tente de venir me connecter à une mémoire partagée . Pour accéder à l'API windows j'ai utilisé
Code:
1 2 3 4 5 6 7 8
|
[DllImport("Kernel32.dll", SetLastError=true)]
internal static extern IntPtr MapViewOfFile ( IntPtr hFileMappingObject,
FileMap dwDesiredAccess,
int dwFileOffsetHigh,
int dwFileOffsetLow,
int dwNumberOfBytesToMap );
|
Dans mon programme C# à un certain moment j'appelle la fct MapViewOFile
Code:
1 2 3 4 5 6 7
|
m_pSharedMem = Win32Native.MapViewOfFile(m_hSharedMem, Win32Native.FileMap.FILE_MAP_READ, 0, 0, 0);
ou
private IntPtr m_hSharedMem = IntPtr.Zero;
private IntPtr m_pSharedMem = IntPtr.Zero;
|
m_pSharedMem pointe alors sur la zone mémoire (d'un objet de type toto )
Normalement en C++ je définissais un pointeur (m_ptrtoto) et j'effectué le casting suivant pour accéder à la mémoire partagée
Code:
1 2 3
|
toto * m_ptrtoto ;
m_ptrtoto = (toto*) m_pSharedMem; |
Le problème est que je n'arrive pas à transcoder cette ligne de code :(
Si quelqu'un à une solution à me proposer :)