窗体加载DLL,如何截获输出
有一个DLL,内部会使用printf输出信息。
想写一个窗口程序调用DLL,将其输出信息显示到edit内,要如何实现?
多谢! DLL加载?截获输出 DLL 加载 截获 输出
[解决办法]
简单点可以将控件的句柄传入,然后dll直接对句柄setwindowtext即可。
[解决办法]
有一个DLL,内部会使用printf输出信息。
想写一个窗口程序调用DLL,将其输出信息显示到edit内,要如何实现?
多谢!
dll内部使用printf或者其它相关界面操作,我感觉不是很好,dll要做的主要是提供功能服务,你要的信息通过CString或者char*传回,至于要怎么处理这个数据,由界面去决定
简单点可以将控件的句柄传入,然后dll直接对句柄setwindowtext即可。
问题在于dll内部暂时无法修改...
使用console程序可以在cmd窗口看到输出,结合网上查到一些资料,写了一个窗体通过pipe调用console程序,结果只截获到console程序的输出。
有什么建议吗?谢谢!
那就重定向输出呗,然后showwindow隐藏掉控制台
现在是这么做的,即 window窗体->concolse->loadlibraryA(dll),window窗体可以截获cosole的printf,得不到dll的printf信息。
简单点可以将控件的句柄传入,然后dll直接对句柄setwindowtext即可。
问题在于dll内部暂时无法修改...
使用console程序可以在cmd窗口看到输出,结合网上查到一些资料,写了一个窗体通过pipe调用console程序,结果只截获到console程序的输出。
有什么建议吗?谢谢!
那就重定向输出呗,然后showwindow隐藏掉控制台
现在是这么做的,即 window窗体->concolse->loadlibraryA(dll),window窗体可以截获cosole的printf,得不到dll的printf信息。
就是说现在这样做了dll里面的printf无法输出到控制台?
单独控制台cosole程序调用dll可以从控制台看到dll的输出,但窗口调用控制台程序看不到dll的输出。
应该可以将控制台重定向到窗口,至于怎么做,你网上搜一下吧
试过用cosole程序调用dll,可以在控制台看到输出,再通过窗口openpipe调用控制台,只拿到控制台的printf, dll的printf无法拿到。