Маршалинг C++ библиотеки в подключенной библиотеке на C#
Формулировка задачи:
Здравствуйте! Я пишу dll для Unigraphics.
Входной точкой для Unigraphics в C++ является
для выгрузки используется
Входной точкой для Unigraphics в C# является
для выгрузки используется
Теперь стоит такая задача, что необходимо запустить dll с вин формами написаную на С# и запустить из нее dll написаную на С++.
Как сделать что бы код на С++ сработал в Unigraphics если dll на С++ запускается из под dll на С#, а dll на С# запускается из под Unigraphics?
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
extern "C" int ufusr_ask_unload( void )
Main()
GetUnloadOption(string dummy)
Решение задачи: «Маршалинг C++ библиотеки в подключенной библиотеке на C#»
textual
Листинг программы
private IntPtr hExe;
DllImport("kernel32")]
static extern IntPtr LoadLibrary(string lpFileName);
private void Form1_Load(object sender, EventArgs e)
{
hExe = LoadLibrary("ваша С++.dll");
if (hExe == IntPtr.Zero)
{
throw new ApplicationException("Can not load " + "ваша С++.dll");
}
}