c++ - 如何从 .NET 代码中使用 Activator 调用的 COM 库打印到控制台?

标签 c++ .net com comobject

系统中的 regsvr32 注册了 COM 对象 dll,它正在做一些 foo()

但是我怎样才能从中打印出来呢?例如如果我只是 printf("test"); 从中看不到任何东西。

我正在通过 progid 获取我的 com 对象

let A<'T> progid =
    Activator.CreateInstance
        ( Type.GetTypeFromProgID progid )
            :?> 'T

和调用方法类似 myObj.foo()

最佳答案

您可以调用AllocConsole首先在您的 GUI 应用程序中调出一个控制台窗口。

请注意,如果您这样做,请在 AllocConsole 调用之后添加以下行。

freopen ("CONOUT$", "w", stdout );
freopen ("CONERR$", "w", stderr );

此外,您可以通过执行以下操作将 stdout/stderr 重定向到文件:

C:\> myprogram.exe > out.txt 2> err.txt

关于c++ - 如何从 .NET 代码中使用 Activator 调用的 COM 库打印到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21403950/

相关文章:

C++:do while 循环有问题

c++ - boost asio 异步操作错误的文件描述符

c++ - C++中的多重定义错误

c# - 以管理员身份运行 cmd 和命令?

c# - 重新学习 C#

c# - 为什么 C# CreateObject 比 VB.NET 冗长得多?

c++ - 没有 RTTI 的类标识

c# - 从使用 List<T> 的 .Net 调用 Java Web 服务

c# - 在 C# 中使用参数打包 IDispatch 调用(使用 DISPPARAMS)

delphi - 使用 COM (SKYPE4COM) 执行耗时任务时防止崩溃