社区
C#
帖子详情
如何在PB中调用C#的函数??
zhuwc
2003-10-18 03:44:55
如何在PB中调用C#的函数??
...全文
54
回复
打赏
收藏
如何在PB中调用C#的函数??
如何在PB中调用C#的函数??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
在
c#
2005
中
编写com组件,供
PB
11
调用
实例(附说明和源码)
在
c#
2005
中
编写com组件,供
PB
11
调用
实例,研究了一下午,终于成功了,分享给大家 前言:
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、
pb
11
中
利用ole
调用
来
调用
com组件,注意,此com组件无法用create ole control的browse查看到,只能利用如下的方法直接动态
调用
。 integer li_a,li_b,li_total //----------注册
c#
生成的com组件------------ 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()) 完毕 *以上为个人经验,欢迎大家发邮件沟通。 email: kair-china@vip.sina.com qq: 55092518
C#
创建COM供
PB
调用
PB
9(包括
PB
9)以前的版本都不能访问VS.Net创建的基于Net FrameWork下的程序,除非将程序编译成COM,
PB
才能正常
调用
。 以下是我总结出的
C#
将类库编译成COM所需要的步骤: 1.创建一个类库程序; 2.在程序里添加using System.Runtime.InteropServices; 3.创建一个公用的
函数
,以供
PB
调用
; 4.启动命令窗口; 5.生成snk文件: sn -k test2.snk 6.将cs文件编译成dll文件: csc /t:library /keyfile:test2.snk /out:tes
基于
C#
调用
c++Dll结构体数组指针的问题详解
下面小编就为大家分享一篇基于
C#
调用
c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
IC卡读写卡源码
IC卡 读写卡源码 , 包含 读卡器
函数
介绍,
C#
, VB , DELPHI ,
PB
, VC
LuaFramework_UGUI_V2-master.zip
自动生成绑定代码文件,非反射
调用
大量内建基础类型支持,如枚举,委托,事件,Type, 数组,迭代器等 支持多种协同形式 支持所有unity内部类导出,支持委托类型导出 支持导出自定义,跳过某个空的基类,修改导出名称等 支持扩展
函数
自定义导出, 比如DoTween 支持值类型Nullable导出,包括Nullable等 支持Lua
中
function转委托,可以区分需要不同委托的参数的重载
函数
支持
c#
LuaFunction对象转委托,简化
调用
方式。 支持无GC的多参数
调用
形式 支持重载
函数
自动折叠, 如:Convert.ToUInt32只导出double参数的
函数
支持重载
函数
自动排序, 如:参数个数相同, object参数执行级最低, 不会出现错误匹配情况 支持导出
函数
重命名, 可以分离导出某个重载
函数
(可以导出被折叠掉的
函数
) 支持使用编辑器类改写导出规则 支持this数组访问,索引为int可以通过[]访问,其他可使用.get_Item或者.this:get()访问数组成员 支持委托(事件)+-lua function。支持通过
函数
接口的Add和Remove委托操作 支持静态反射操作, 形式同
c#
支持peer表,可在lua端扩展导出的userdata 支持自定义struct压入和读取,做到无GC,并且结构成员无类型限制, 参考例子24 支持preloading, 可以通过requie后绑定wrap文件 支持int64, uint64 大量的lua数学类型,如Quaternion, Vector3, Mathf等 包含第三方lua扩展,包括luasocket, struct, lpeg, utf8,
pb
等库 当lua出现异常,能够同时捕获
c#
端和lua端堆栈,便于调试 print信息,在编辑器点击日志, 能自动打开对应lua文件 支持unity所有版本 支持Lua hook
C#
相代码实现,一定程度上支持利用Lua代码修改
C#
端代码的bug(暖更新使用说明)
C#
110,537
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章