Comment marshaler une structure comme un pointeur vers une structure?

Je suis en train de passer d'une structure à partir de C# en C++ de la bibliothèque. Je passe de la structure en tant qu'objet et C++ la fonction attend un pointeur (void *).

Je vais avoir des problème de passage de la structure.

[DllImport("MockVadavLib.dll", CharSet = CharSet.Ansi)]
public static extern IntPtr TheFunction([MarshalAs(UnmanagedType.LPStruct)] UserRec userRec);

Voici le texte de l'exception-je obtenir:

"Ne peut maréchal paramètre #1': Invalid réussi/non géré type de combinaison (ce type de valeur doit être couplé avec Struct)."

Si je l'ai trouvé un article MSDN qui utilise LPStruct exactement dans ce contexte.

C'est ma structure, je suis en train de maréchal:

[StructLayout(LayoutKind.Sequential)]
public struct UserRec {
    [MarshalAs(UnmanagedType.I4)]
    public int userParam1;
}

C'est le C++ la fonction:

MOCKVADAVLIB_API tVDACQ_CallBackRec * TheFunction(void * userParams) {...

source d'informationauteur THX-1138