Yönetilmeyen bir dll yükleyen ve C# 'dan birkaç dize değeri ileten basit bir uygulamam var. Ama C++ dll uygulamasında bir istisna alıyorum: Okuma/yazma korumalı belleğe erişmeye çalıştım. Benim DLL İthalat şöyle görünür:Yönetilmeyen C++ dizesine geçiş C# 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);
ve C++ Bildirgesi
extern "C"
__declspec(dllexport) int DumpToDBLogFile(int loggingLevel, int jobId, int threadId, string procName, string message)
{
//access strings..
}
Yardım lütfen gibidir !!!
C++ içindeki kodda olduğu gibi yığın içinde C# erişemiyor. – Kangkan