【发布时间】:2017-01-18 23:37:02
【问题描述】:
在我的项目(虚幻引擎 4)中,我没有输出流 - 取而代之的是,我可以通过 UE_LOG 函数进行通信,该函数的工作方式与 printf() 非常相似。问题是我刚刚创建了一个 .dll 库(没有 Unreal 包含),我想通过 iostream 进行通信。我的想法是 - 在 .dll 库中,我使用标准的 cout 将消息写入 ostream,我在虚幻引擎函数中使用所有这些,我以字符串的形式获取 ostream 并将其输出到 UE_LOG 函数中。
问题是我一直将std::cout 视为魔法的一部分,而没有考虑里面到底是什么(我很确定我们大多数人都这样做了)。我该如何处理?简单的方法行不通(比如抓取stringstream 并将其输出到UE_LOG)。
【问题讨论】:
-
包装这些东西以匹配
std::ostream语法。大笑:D -
既然可以传递字符串,为什么还要传递流?让 DLL 中的函数接受
std::string参数,如果它们需要返回字符串,则返回std::string。 -
@joachim-pileborg 是的,但是 dll 函数会产生复杂的过程,并且必须在执行前后调用 - 所以仅仅抓住字符串是没有帮助的。
-
我不确定我是否完全理解您想要什么,但您检查过
stringstream吗? -
@Revolver_Ocelot 哟,最后一行是关于这个的。或者我不知道一些隐藏的功能,比如实时更新或smth。