У меня есть простое приложение, которое загружает неуправляемую DLL и передает ей несколько строковых значений из C #. Но в приложении C ++ dll я получаю исключение :: Пытался получить доступ к памяти, защищенной от чтения / записи. Мой импорт DLL выглядит так:
[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);
и объявление C ++ похоже на
extern "C"
__declspec(dllexport) int DumpToDBLogFile( int loggingLevel, int jobId, int threadId, string procName, string message )
{
//access strings..
}
Помогите пожалуйста !!!