我想跟踪dll模块中的一些文本到主程序窗口(到日志子窗口)。我该怎么做才能正确? (通过内核原语,通过从窗口发送消息到窗口,传递回调接口?)我见过的工作示例:Matlab和Octave。当调用mexPrintf
然后输出打印在他们的主窗口中。
答案 0 :(得分:4)
您的主程序应该导出日志记录功能并使DLL知道它。您的DLL需要导出一个函数,例如InitLogging,它接受一个函数指针并将传递的值存储到其全局数据中。
另一种方法是将您的“主”程序放在另一个DLL中,并创建一个将所有DLL链接在一起的“存根”主程序。
(在Windows上,DLL可以调用彼此的函数,但DLL不能调用主程序中的函数。在unix上,这更简单,因为共享对象可以直接调用主程序的函数。)