【发布时间】:2011-05-04 12:48:27
【问题描述】:
我的 Windows 应用程序有一个 C# 部分和一个 C++ 部分。 C# 应用程序在运行时会显示一个控制台窗口。
C++ 代码被编译成一个 DLL,通过 P/Invoke 从 C# 中使用。
问题是通过 std::cout 从 C++ DLL 打印文本不会打印任何内容。从 C# 打印工作正常。
我怀疑 C# 已经接管了控制台,所以 C++ 无法处理它。修复可能是从 C# 获取控制台句柄,将其传递给 C++,并使用它将 std::cout 连接到控制台窗口。但我不知道该怎么做。
有什么想法吗?
编辑:我的 C++ 代码是非托管的。
【问题讨论】:
-
在C++中,如果你打开一个名为“con”的文件(用于写入),然后写入它,它会起作用吗?
-
@coder, @Gavin:正确的文件名是“CONOUT$”,见msdn.microsoft.com/en-us/library/aa363858.aspx