Пример как в из c++ dll вызвать функцию на C#

Чтоб ее вызвать нужно о ней знать, для этого надо передать в параметрах указатель на функцию.

code: #csharp
  1. //инпортируем нужную функцию из плюсанутой дллки, CallingConvention важен
  2. [DllImport(@"YouCppDll.dll", CallingConvention = CallingConvention.Cdecl)]
  3. public static extern void RunFunk(ActionDeleg funkPtr);
  4.  
  5. public delegate void ActionDeleg();
  6.  
  7. public static void ActionFunk()
  8. {
  9.     Console.WriteLine("hello!");
  10. }
  11.  
  12. private static void Main(string[] args)
  13. {
  14.     ActionDeleg f = ActionFunk;
  15.     RunFunk(f);

в с++ dll код:

code: #cpp
  1. typedef void (*FUNK)();
  2.  
  3. extern "C" _declspec(dllexport) void RunFunk(FUNK funkPtr)
  4. {
  5.         funkPtr();
  6. }
Поделиться:

Похожие статьи:

теги: c#, dll