ehxz 发表于 2024-5-7 10:40:44

如何使用pbidea不注册COM直接调用C# dll

如何使用 pbidea 不注册 COM 直接调用 C# dll
C# dll 调用,一直是 PB 程序员的一个烧脑问题,原因在于它不能导出 PB 能识别的 WINAPI 函数,而是导出
COM 接口,因此,一般是先注册 COM,调用接口。但注册 COM 实在是不方便。
Pbidea 调用 C# dll 是相当简单,不需要注册 COM,直接调用。下面说一下步骤方法:

一、静态成员和方法
string ls_ret
uo_csharp cs; cs = create uo_csharp
//加载 DLL
if cs.load("csharpapi.dll") then
//调用函数
cs.invoke("pbidea", "CPbideaAPI", "dump", "test dump method")
//取返回值
cs.GetReturn(ls_ret)
MsgBox("static method dump", ls_ret)
else
msgbox("load csharpapi.dll fail")
end if
destroy cs
二、对象成员和方法
string ls_ret
uo_csharp cs; cs = create uo_csharp
uo_csharp_object obj
if cs.load("csharpapi.dll") then
//实例化对象,然后再调用其函数
obj = cs.CreateObject("pbidea", "CPbideaAPI")
if isvalid(obj) then
if obj.invoke("hello","i am text from pb", "i am title from pb", 123456.78) then
obj.GetReturn(ref ls_ret)
MsgBox(ls_ret)
else
MsgBox("invoke method hello fail")
end if
cs.DestroyObject(obj) //或 destroy obj
end if
else
msgbox("load csharpapi.dll fail")
end if
destroy cs
以上只是简单演示,更多内容请移步 pibdea demo。Demo 有强大功能。

将 C# dll 文件拖到此窗口,会自动解析出 DLL 接口信息,不需要 C#源码。

swimchen 发表于 2024-7-10 20:25:40

其实我觉得注册COM反而好一点,可能是因为我习惯了,我会先判断是否能够连接,连接不上就自动注册,注册不了就返回-1,毕竟用COM,其实就是为了调用里面的函数而已,我习惯了如果连接不上COM,就相当于函数返回-1。不过这只是我个人习惯!
页: [1]
查看完整版本: 如何使用pbidea不注册COM直接调用C# dll

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com