вызов функции C ++ из C # и отправка данных обратно в C # - PullRequest
3 голосов
/ 16 февраля 2011

У меня есть приложение на C #, которое вызывает функции в DLL, написанной на C ++. Вызовы работают нормально, и код выполняется с помощью этого метода в C #:

[DllImport("myDLL.dll")]
public static extern void Function();

static void Main()
{
    Function();
}

Теперь это работает, мне нужен исполняемый код C ++ для отправки текста обратно в C #, где он может отображаться на панели.

Текст «первый этап ...» выполняет код ... затем второй этап и т. Д., Показывая запущенные процессы. Просто основные вещи. Я не уверен, как подойти к этому, поскольку я не парень C ++. Мои основные навыки .NET.

Приветствия

1 Ответ

2 голосов
/ 16 февраля 2011

Попробуйте использовать обратные вызовы в C ++ и подписать их в C #

C ++ part

typedef void (CALLBACK *pfNotifyMessage)(LPTSTR);

extern "C" AFX_API_EXPORT void SetNotifyMessage(pfNotifyMessageType pfNotify);
extern "C" AFX_API_EXPORT void Function();

В C ++ вызов функции сделать вызов pfNotifyMessage

C # part

public delegate void NotifyMessage(string message);

[DllImport("myDLL.dll")]
public static extern void SetNotifyMessage(NotifyMessage notify);

[DllImport("myDLL.dll")]
public static extern void Function();

в С # назначить делегата с функцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...