Перечитал кучу форумов, пробовал — ничего не помогает.
Ситуация следующая. Есть программа, назовем ее Читалка. Она открывает текстовые файлы.
При смене страницы Читалка вызывает определенную функцию dll (это настраивается) и передает номер страницы.
В С++ данный метод выглядит так:
int _stdcall GotoPage(int page)
Всё работает, эта функция выполняется.
Мне нужно, чтобы этот метод С++ вызывал,
в свою очередь, метод C#. Обращаю внимание, что С++ приложение — managed (/clr) написано в VS 2010.
И в моем солюшене есть два проекта: С++ с вышеперечисленным методом и C#.
я пытаюсь вызвать методы C# из функции С++ следующими способами:
статический:
Video::VideoCommander::WriteTest();
обычный:
Commander^ commander = gcnew Commander;
commander->WriteTest();
— всё компилируется, НО в run-time даже этот С++ метод не вызывается, как будто его нет! Само собой, до C# дело вообще не доходит!
Если я комментирую эти вызовы C#, то всё опять работает!
Если я напишу
System::DateTime now = System::DateTime::Now;
fprintf(filepointer," TEST %d:%d:%d\n", now.Hour, now.Minute, now.Second);
— то это работает! Хотя System::DateTime — это .NET метод!
В чем может быть дело?
я даже добавил в С++:
using namespace Video;
#using <D:\DEV\CPP\VideoCommander\bin\Debug\VideoCommander.dll>
— не помогло!