PB程序调用C++ COM生成对象发回-2问题

  C++写的COM组件用于读CPU卡,在C#中正常能够引用使用,但是在PB中却是返回-2,不识别类名,代码如下:

OleObject ole_AddCom
ole_AddCom = Create OLEObject
li_rc = ole_AddCom.ConnectToNewObject("AddCom.AddComService") //AddCom为c#中namespace,AddComService为c#中namespace中的class
if li_rc <> 0 then
MessageBox("ConnectToNewObject", string(li_rc) )
return
end if
//----------调用com组件中的函数--------------
li_total = ole_AddCom.iadd(li_a, li_b) //iadd为c#中namespace(AddCom为c)中class(AddComService为c)中的函数(iadd())

AddCom.AddComService 其中AddCom就是在C#中的命名空间,AddComService就是类名,在C#中引用后发现AddCom变成了AddComlib,然后在PB程序中ole_AddCom.ConnectToNewObject("AddCom.AddComService")改成了这个后好用,AddCom就是要注册的那个C++动态库名称,没有lib在PB中,C#中引用出现lib。

posted @   Aamboo  阅读(1131)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示