DLL к основной программе связи - PullRequest
1 голос
/ 28 августа 2011

Я хочу отследить некоторый текст из модуля dll в главное окно программы (в подокно журнала). Как я могу сделать это правильно? (через примитивы ядра, через отправку сообщений из окна в окно, передачу интерфейсов обратного вызова?) Рабочий пример, который я видел: Matlab и Octave. При вызове mexPrintf вывод выводится в их главные окна.

1 Ответ

4 голосов
/ 28 августа 2011

Ваша основная программа должна экспортировать функцию ведения журнала и сообщить об этом в DLL. Ваша DLL должна экспортировать функцию, такую ​​как InitLogging, которая берет указатель на функцию и сохраняет переданное значение где-то в своих глобальных данных.

Альтернативой является помещение вашей "основной" программы в другую DLL и создание основной "заглушки", которая связывает все библиотеки DLL вместе.

(В Windows DLL могут вызывать функции друг друга, но DLL не может вызывать функцию в основной программе. В Unix это намного проще, поскольку совместно используемые объекты могут напрямую вызывать функции основной программы.)

...