Ищу некоторые указатели (без каламбура ...) относительно лучшего подхода для этого сценария. Функция: < /p>
typedef std::function SCallback;
__declspec(dllexport) int StartS( SCallback fnS );
< /code>
Я пытаюсь назвать это из приложения консоли C#, и это то, что я делаю: < /p>
[DllImport("SeqLib.dll", EntryPoint = "?StartS@SApi@@YAKV?$function@$$A6AXIIPBD@Z@std@@@Z", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
public static extern int StartS(DCallback cb);
public delegate void DCallback(int msgType, int size, IntPtr value);
public static void MessageReceived(int msgType, int size, IntPtr value)
{
return 0;
}
DCallback callback = new DCallback(MessageReceived);
StartS(callback);
< /code>
Запуск этого дает: < /p>
System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
< /code>
Исключение в стороне, есть ли что -то не так с основным подходом выше? Может ли кто -нибудь посоветовать по правильному подходу к вызову экспортируемой функции, которая имеет параметр функции std :: function, как указано выше?
Заранее.
Подробнее здесь: https://stackoverflow.com/questions/794 ... dll-from-c
Как позвонить в STD :: функционировать в рамках неуправляемого C ++ DLL из C#? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как позвонить в STD :: функционировать в рамках неуправляемого C ++ DLL из C#?
Anonymous » » в форуме C# - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как позвонить в STD :: функционировать в рамках неуправляемого C ++ DLL из C#?
Anonymous » » в форуме C++ - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как позвонить в STD :: функционировать в рамках неуправляемого C ++ DLL из C#?
Anonymous » » в форуме C# - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-