北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 10948|回复: 14

用ZMud调用COM的初次尝试

[复制链接]
发表于 2013-9-18 16:58:08 | 显示全部楼层 |阅读模式
我这人不大会聊天,所以直入主题

起因:不适应zmud的语言语法,所以希望把一些复杂的操作用熟悉的工具去完成
目标:用zmud调用C#编写的类和方法,传递参数并返回结果
环境:ZMud 7.21, VS 2012
步骤:
1、打开vs2012,创建新的名叫zmud的C#类库项目
2、输入以下源码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Runtime.InteropServices;

  7. namespace zmud
  8. {
  9.   [Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]
  10.   public interface MyCom_Interface
  11.   {
  12.     [DispId(1)]
  13.     int Add(int a, int b);
  14.   }

  15.   [Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
  16.   public interface MyCom_Events
  17.   {
  18.   }


  19.   [Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(MyCom_Events))]
  20.   public class Class1 : MyCom_Interface
  21.   {
  22.     public int Add(int a, int b)
  23.     {
  24.       return a + b;
  25.     }
  26.   }
  27. }
复制代码


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
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 17:13:25 | 显示全部楼层
爱恨交加的721
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 18:01:17 | 显示全部楼层
用外挂还可以提高运算速度,zmud的效率比较低,不适合作大量运算。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-9-18 18:07:14 | 显示全部楼层
回复 2# yyahoo

新人,纯纯的新人
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-9-18 18:08:12 | 显示全部楼层
本帖最后由 jsleo 于 2013-9-18 10:09 AM 编辑

回复 3# bluse

敢问胸大……呃不……熊大,恨从何来?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-9-18 18:09:02 | 显示全部楼层
回复 4# alucar

请教,除了路径计算,还有什么需要大量运算的地方?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 18:41:49 | 显示全部楼层
回复  alucar

请教,除了路径计算,还有什么需要大量运算的地方?
jsleo 发表于 2013-9-18 10:09 AM

字符识别匹配计算量不小。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 18:46:42 | 显示全部楼层
围观技术帝
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 20:02:30 | 显示全部楼层
啧啧,又掀起北侠新一轮技术波澜啊

求识别框架
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-9-18 20:11:16 | 显示全部楼层
又来一个变态。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 01:58 AM , Processed in 0.009824 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表