Pasar cadena de C # a DLL de C ++ no administrado
Tengo una aplicación simple que carga un dll no administrado y le pasa algunos valores de cadena desde C #. Pero en la aplicación dll C ++, recibo una excepción :: Intenté acceder a una memoria protegida de lectura / escritura. Mi importación de DLL se ve así:
[DllImport("X.dll", CallingConvention = CallingConvention.Cdecl) ]
public static extern int
DumpToDBLogFile([MarshalAs(UnmanagedType.I4)]int loggingLevel,
[MarshalAs(UnmanagedType.I4)]int jobId,
int threadId,
[MarshalAs(UnmanagedType.LPStr)]string procName,
[MarshalAs(UnmanagedType.LPStr)]string message);
y la Declaración de C ++ es como
extern "C"
__declspec(dllexport) int DumpToDBLogFile( int loggingLevel, int jobId, int threadId, string procName, string message )
{
//access strings..
}
¡¡¡Ayuda por favor!!!