搜索
查看: 5566|回复: 3

为什么运行C#源码出错?

  [复制链接]

29

主题

84

帖子

523

积分

三级会员

Rank: 4

积分
523
发表于 2013-1-30 14:40:09 | 显示全部楼层 |阅读模式
本帖最后由 bdpingguo 于 2013-1-30 14:41 编辑

按照范例 将C#源码拷贝到aardio运行出错,提示:160行 aa 为null;请教为什么?非常感谢!
  1. import win.ui;
  2. import dotNet;
  3. import console;
  4. /*DSG{{*/
  5. mainForm = ..win.form( bottom=400;parent=...;right=600;text="aardio Form" )
  6. mainForm.add(  )
  7. /*}}*/


  8. console.open();
  9. var clr,err = dotNet.clr( "v2.0" );
  10. if( !clr ){
  11.     console.log("当前系统未安装.Net Framework 2.0", err )
  12.     return;
  13. }

  14. //创建应用程序域
  15. var appDomain = clr.createAppDomain();

  16. //创建C#语言编译器
  17. var compile = appDomain.createCompiler("C#");
  18. compile.Reference("System.dll");
  19. var zz1 = appDomain.load("TopSdk");

  20. //设置待编译C#源码
  21. compile.Source = /******
  22. using System;
  23. using System.Collections.Generic;
  24. using System.Text;
  25. using Top.Api.Stream;
  26. using Top.Api.Stream.Connect;
  27. using Top.Api.Stream.Message;
  28. namespace taobao
  29. {
  30.     class Program
  31.     {
  32.         
  33.         static void Main(string[] args)
  34.         {
  35.             string appkey = "21273208";
  36.             string secret = "d234a388f5f710db79d53951e367bba6";
  37.             



  38.             Configuration conf = new Configuration(appkey, secret, null);
  39.             ITopCometStream stream = new TopCometStreamImpl(conf);
  40.             stream.SetConnectionListener(new zzp1());
  41.             stream.SetMessageListener(new zzp2());
  42.              stream.Start();

  43.            
  44.         }
  45.     }
  46.     class zzp1 : IConnectionLifeCycleListener
  47.     {

  48.         public void OnBeforeConnect()
  49.         {

  50.         }

  51.         public void OnConnect()
  52.         {
  53.             Console.WriteLine("连接成功");
  54.         }

  55.         public void OnConnectError(Exception e)
  56.         {

  57.         }

  58.         public void OnException(Exception throwable)
  59.         {

  60.         }

  61.         public void OnMaxReadTimeoutException()
  62.         {

  63.         }

  64.         public void OnReadTimeout()
  65.         {

  66.         }

  67.         public void OnSysErrorException(Exception e)
  68.         {

  69.         }
  70.     }
  71.     class zzp2 : ITopCometMessageListener
  72.     {

  73.         public void OnClientKickOff()
  74.         {

  75.         }

  76.         public void OnConnectMsg(string message)
  77.         {

  78.         }

  79.         public void OnConnectReachMaxTime()
  80.         {

  81.         }

  82.         public void OnDiscardMsg(string message)
  83.         {

  84.         }

  85.         public void OnException(Exception ex)
  86.         {

  87.         }

  88.         public void OnHeartBeat()
  89.         {
  90.             Console.WriteLine("心跳包");
  91.            
  92.            
  93.         }

  94.         public void OnOtherMsg(string message)
  95.         {

  96.         }

  97.         public void OnReceiveMsg(string message)
  98.         {

  99.         }

  100.         public void OnServerKickOff()
  101.         {

  102.         }

  103.         public void OnServerRehash()
  104.         {

  105.         }

  106.         public void OnServerUpgrade(string message)
  107.         {

  108.         }
  109.     }
  110. }
  111. ******/

  112. //编译并返回程序集  
  113. var aa = compile.Compile()  

  114. //调用程序集创建类对象
  115. var cc = aa.CreateInstance("taobao.Program");

  116. /***
  117. import config;
  118. mainForm.bindConfig( config.mainForm,{
  119.         edit = "text"; //绑定edit控件的text属性值到配置文件
  120.         radiobutton = "checked";
  121.         checkbox = "checked";
  122.         combobox = "selIndex";
  123. } );
  124. ***/

  125. mainForm.show()
  126. win.loopMessage();
复制代码
回复

使用道具 举报

9

主题

462

帖子

2551

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2551
发表于 2013-1-30 16:14:13 | 显示全部楼层

[code]//编译并返回程序集 var aa = compile.Compile() if(!aa){ ..io.print( comp

  1. //编译并返回程序集  
  2. var aa = compile.Compile()  

  3. if(!aa){
  4.         ..io.print( compile.getLastError() )
  5.         appDomain.unload()
  6.         return;
  7. }
复制代码
回复

使用道具 举报

29

主题

84

帖子

523

积分

三级会员

Rank: 4

积分
523
 楼主| 发表于 2013-1-30 19:36:50 | 显示全部楼层

第23行 是导入的 sdk的格式吧,我在visual studio中测试没问题,不知道在这为什么出错。 [attach]3129[/attach]

第23行 是导入的 sdk的格式吧,我在visual studio中测试没问题,不知道在这为什么出错。
111.JPG
回复

使用道具 举报

4

主题

874

帖子

4704

积分

荣誉会员

Rank: 8Rank: 8

积分
4704
发表于 2013-1-30 21:20:50 | 显示全部楼层

可以试试指定DLL路径,如果你在VS里没问题,你也可以在VS里写好DLL,再在aardio里调用DLL,一回事的很简单。

可以试试指定DLL路径,如果你在VS里没问题,你也可以在VS里写好DLL,再在aardio里调用DLL,一回事的很简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-18 02:03 , Processed in 0.078125 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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