我有一个问题已经困扰了一天左右,我想知道是否有人可以提供帮助:
我正在尝试使用 ActiveMQ-NMS 在 C++ 应用程序中通过 COM 将消息出队。我已成功构建源代码并覆盖“ComVisible”标志,以便通过 RegAsm 导出程序集中的所有类型(我确实收到了有关此类和“Atomic”类的警告,但我不认为这是我面临的问题目前)。
作为 RegAsm 的一部分,我生成了一个 .tlb 文件,我在 C++ 客户端的 #import 中使用该文件。然而,我在编译时收到了各种错误。诸如此类:
error C2146: syntax error : missing ';' before identifier 'Keys'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
本质上,像 ICollectionPtr(以及其他各种)之类的东西看起来不可用。谁能帮助我解决这些问题?本质上我希望将 .net ActiveMQ-NMS 程序集注册为 COM 兼容组件,然后从 C++ 使用它...
除非有其他原因需要使用 COM 和 NMS,否则为什么不直接使用 ActiveMQ-CPP 客户端呢?那么你就可以避免 COM 的所有复杂性。 ActiveMQ-CPP 位于此处: