dll与主程序的通信

发布于 2024-12-01 19:37:58 字数 153 浏览 2 评论 0原文

我想跟踪 dll 模块中的一些文本到主程序窗口(到日志子窗口)。我怎样才能正确地做到这一点? (通过内核原语,通过从一个窗口到另一个窗口发送消息,传递回调接口?)我见过的工作示例:Matlab 和 Octave。当调用 mexPrintf 时,输出会打印在主窗口中。

I want to trace some text from dll module to a main program window (to a log subwindow). How can I do this correctly? (through kernel primitives, via sending messages from window to window, passing callback interfaces?) The working example I've seen: Matlab and Octave. When calling mexPrintf then output printed in their main windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橘香 2024-12-08 19:37:58

您的主程序应该导出一个日志记录函数并让 DLL 知道它。您的 DLL 需要导出一个函数,例如 InitLogging,它接受函数指针并将传递的值存储到其全局数据中的某处。

另一种方法是将“主”程序放在另一个 DLL 中,并创建一个将所有 DLL 链接在一起的“存根”主程序。

(在Windows上,DLL可以调用彼此的函数,但是DLL不能调用主程序中的函数。在unix上,这更简单,因为共享对象可以直接调用主程序的函数。)

Your main program should export a logging function and make it known to the DLL. Your DLL needs to export a function, such as InitLogging, that takes a function pointer and stores the passed value somewhere into its global data.

An alternative is to put your "main" program in another DLL and make a "stub" main that links all the DLLs together.

(On Windows, DLLs can call each other's functions, but a DLL cannot call a function in the main program. On unix, this is much simpler, as shared objects can directly call the main program's functions.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文