【发布时间】:2015-02-26 10:43:41
【问题描述】:
我们使用 Microsoft Visual Studio 2008 在 C 中为 Windows 构建了一个动态库。该库执行许多控制台程序。当 GUI 应用程序使用此库时,控制台 Windows 会在屏幕上闪烁。我们需要避免这些屏幕闪烁。
以下是库执行的示例命令行:
system("ver 2>nul > OS_version_file");
有什么方法可以避免屏幕闪烁?
【问题讨论】:
-
你为什么打电话给
ver而不是GetVersionEx()? -
除了ver之外,我们在代码中还使用了move、ipconfig /all、diskpart等命令。我们也有这些的等价物吗?
-
库不应该修改用户的控制台窗口,如果有的话。 GUI 应用程序可以通过
AllocConsole和ShowWindow(GetConsoleWindow(), SW_HIDE)打开和隐藏控制台。或者使用以下方法来避免初始窗口闪烁。使用CreateProcess和dwCreationFlags=CREATE_NO_WINDOW来启动cmd.exe,或其他一些等待的控制台程序。然后拨打AttachConsole。
标签: c windows visual-studio-2008