|
我这人不大会聊天,所以直入主题
起因:不适应zmud的语言语法,所以希望把一些复杂的操作用熟悉的工具去完成
目标:用zmud调用C#编写的类和方法,传递参数并返回结果
环境:ZMud 7.21, VS 2012
步骤:
1、打开vs2012,创建新的名叫zmud的C#类库项目
2、输入以下源码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Runtime.InteropServices;
- namespace zmud
- {
- [Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]
- public interface MyCom_Interface
- {
- [DispId(1)]
- int Add(int a, int b);
- }
- [Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
- public interface MyCom_Events
- {
- }
- [Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(MyCom_Events))]
- public class Class1 : MyCom_Interface
- {
- public int Add(int a, int b)
- {
- return a + b;
- }
- }
- }
复制代码
3、修改项目属性
a.项目属性->应用程序->程序集信息->选中“使程序集COM可见”
b.项目属性->生成->选中“为COM互操作注册”
4、编译,成功。至此,com组件已经生成并注册在系统中,zmud可以直接调用了
5、切换到zmud,输入以下指令:
#VAR zzzz %comcreate("zmud.Class1") //zmud对应C#项目的namespace,Class1对应类名
#show @zzzz.add(33,4)
屏幕显示37
参考资料:http://blog.sina.com.cn/s/blog_538342930100nlmk.html
北大侠客行MUD,中国最好的MUD |
|