【发布时间】:2017-05-12 23:54:58
【问题描述】:
我正在使用 VS 2010 的 Visual C++ 开发可执行 COM 对象。现在我需要对其进行调试。但是在哪里传递使用这个 COM 的应用程序呢?
如果我将它放入Conf. properties>>Debugging>>Command,应用程序会启动,但不会通过 COM 代码中的断点。
更新:
我的项目是进程外 COM 服务器。
我已经测试了debugging types - Native Only 和 Auto 以及两种调试模式 - run and + client applications 和 run client application and attach to process from VS COM project。在这些情况下,我都没有成功调试。调试断点未激活。我已经从 cmd 提示符 myCom.exe /RegServr 运行,但他没有帮助。如何解决这个问题?
UPD2:
我发现,如果我从另一个 IDE 运行使用我的 COM 服务器的客户端应用程序,我当前的带有 COM 项目的 IDE 会开始看到断点并通过它们。如何实现这种行为?为什么 COM 项目中的断点在将客户端应用程序作为普通应用程序运行时不活动?
【问题讨论】:
-
“可执行 COM 对象”是指进程外 COM 服务器(也称为本地服务器)吗?或者它只是一个 DLL(进程内服务器)?前者我没有经验,但后者你只需调试使用 DLL 的应用程序。
-
而如果是进程外服务器,则在调试器下启动,然后单独运行应用程序
-
我已经用更多信息更新了问题正文
-
@M.M 您应该通过将“/embedding”作为命令行传递来启动本地服务器调试会话。这指示服务器注册自己并等待 CreateInstance 调用。
-
/embedding 可能只用于 COM 项目?
标签: visual-studio-2010 visual-c++ com