社区
API 调用
帖子详情
pb11.5调用C# dll ConnectToNewObject 返回-3什么原因?
名字一定要低调
2019-05-24 02:45:36
C#写的dll注册为com组件,pb在我的电脑可以正常调用,换台电脑就报错。
ConnectToNewObject 返回-3,com相关的服务也都已启动
求助大神
...全文
535
1
打赏
收藏
pb11.5调用C# dll ConnectToNewObject 返回-3什么原因?
C#写的dll注册为com组件,pb在我的电脑可以正常调用,换台电脑就报错。 ConnectToNewObject 返回-3,com相关的服务也都已启动 求助大神
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guoxinping163
2019-11-29
打赏
举报
回复
com组件没有注册成功,重新注册一下就好了
C#
开发COM组件供PB
调用
C#
开发COM组件供PB
调用
有时PB里难以实现的功能,在
C#
里好容易就实现了,这时我们就可用
C#
来开发COM组件,在PB里
调用
即可。 PB
调用
方法: int intValue ole
object
objOle objOle=create OLE
Object
intValue=objOle.
connect
to
new
object
("MyLib.MyClass") Sle_1.Text=ObjOle.GetIP()
PB11
.5写的往Excel写操作Demo
PB11
.5写的往Excel写操作Demo,主要代码: long ll_rc string sFilePath ole
object
lo_excelapp lo_excelapp = create ole
object
ll_rc = lo_excelapp.
connect
to
new
object
("Excel.Application") if ll_rc <> 0 then destroy(lo_excelapp) return end if lo_excelapp.WorkBooks.Open( 'D:\temp\test1.xls' ); lo_excelapp.WorkSheets[1].Activate lo_excelapp.Cells[1,4].Value = '第一行第四列'; sFilePath = "D:\temp\result1.xls" lo_excelapp.Application.ActiveWorkbook.saveas(sFilePath) lo_excelapp.Application.quit() lo_excelapp.Dis
Connect
Object
() destroy lo_excelapp messagebox( '提示', "OK")
在
c#
2005中编写com组件,供
PB11
调用
实例(附说明和源码)
在
c#
2005中编写com组件,供
PB11
调用
实例,研究了一下午,终于成功了,分享给大家 前言:
c#
中写的
dll
直接是不能被pb
调用
的,只有写成com组件才可以
调用
,所以用
c#
写
dll
时要注意。 1、
c#
2005中新建项目,类型为类库,项目名为AddCom确定。 配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 2、打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)],如果不改则不能被其他程序
调用
3、编写com组件会用到guid(全球唯一ID),编写com组件必须要用到。
c#
会默认生成一个放在AssemblyInfo.cs,如没有生成,网上下一个生成guid的软件,有很多呢。 4、
c#
中源代码如下,按如下方法编写代码后生成工程,/bin/release中得到AddCom.
dll
。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace AddCom { [Guid("298D881C-E2A3-4638-B872-73EADE25511C")] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); } [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")] [ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } } } 5、dos下利用 e:\regasm AddCom.
dll
命令注册com组件,可以理解为非.net平台下的regsvr32注册
dll
组件。提示注册成功即可。 6、
pb11
中利用ole
调用
来
调用
com组件,注意,此com组件无法用create ole control的browse查看到,只能利用如下的方法直接动态
调用
。 integer li_a,li_b,li_total //----------注册
c#
生成的com组件------------ Ole
Object
ole_AddCom ole_AddCom = Create OLE
Object
li_rc = ole_AddCom.
Connect
To
New
Object
("AddCom.AddComService") //AddCom为
c#
中namespace,AddComService为
c#
中namespace中的class if li_rc <> 0 then MessageBox("
Connect
To
New
Object
", 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()) 完毕 *以上为个人经验,欢迎大家发邮件沟通。 email: kair-china@vip.sina.com qq: 55092518
PB
调用
barcodex控件打印条码案例源码
PB
调用
barcodex控件打印条码案例源码,自己写的网上找不到的
PowerBuilder应用程序中的OLE编程技术
PowerBuilder应用程序中的OLE编程技术
API 调用
680
社区成员
4,762
社区内容
发帖
与我相关
我的任务
API 调用
PowerBuilder API 调用
复制链接
扫一扫
分享
社区描述
PowerBuilder API 调用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章