我有一个程序在Windows控制台(conhost.exe)中运行时显示一些输出,并且在使用完全相同的参数在Cygwin下运行时根本没有输出。
什么可能导致这样的问题?
我测试了$ C:/Windows/zip.exe --help
,他们都返回了相同的输出。 (也许这不是标准但是错误输出)
命令行是:
./Bin/Release/MyExe.exe regtest ./QCE/RegressionTests/AutoTests/AutoGenerated/T1/RegTest_PV_Loan.tst
该程序是一个非标准程序,我们没有源代码。
编辑:我被告知该程序使用此调用检查它是否在控制台中运行,该调用在Cygwin中返回false:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683167(v=vs.85).aspx
答案 0 :(得分:1)
程序正在使用函数GetConsoleMode
检查它是否在控制台模式下运行。不幸的是,这在Cygwin下的bash中返回false。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683167(v=vs.85).aspx
答案 1 :(得分:0)
一定是路径问题。检查:
答案 2 :(得分:-1)
Cygwin在X11 xterm中运行许多DOS程序(特别是使用Borland编译器编译)但在非X cygwin控制台窗口下没有同样的问题。例如/UTES/zip.exe什么都不显示(甚至不显示错误消息)。
解决方法: 我确实发现用/UTES/zip.exe重定向输出> /tmp/some.file获取所需的文本输出,但是/UTES/zip.exe |更多挂起(就像任何其他管道命令...排序,lpr等)我可以使用CMD但CMD / c program.exe对我不起作用并且从CMD shell以交互方式运行程序,而不是cygwin可执行文件或CMD-builtins也只输出命令名称。对我来说,最好的解决方案就是不幸地为这些程序避免使用X.