zoukankan      html  css  js  c++  java
  • 让LuaInterface 2.0.1支持中文

         最近也心血来潮研究Lua在.net下的运用,已有不少牛人在这方面做出了贡献,其中可以选择的封装库有LuaNet和LuaInterface,不过这2个库都有着不支持Unicode字符(汉字)的问题-_-#..

         luanet下载地址:http://luaforge.net/projects/luanet/,最新版本Version 0.01

         luainterface下载地址:http://luaforge.net/projects/luainterface/,最新版本为Version 2.0.3

         对比人气感觉luainterface略高一些,版本更新多,并且还有不少工具,而luanet就显得有点单薄了.

         关于luanet的中文支持,博客园有这么一篇文章:<<Lua 在.net 中的是非>>,然而可能是luaforge上的库版本有更新,调试的时候并不是在luaxlib.cpp的getS函数出错,而是在一个NetToC_Str函数里由于汉字的wchar>255直接返回NULL无法翻译了.

         luainterface2.0.3暂时未放出源码,2.0.1算个稳定版吧,下载回来,根据<<Lua 在.net 中的是非>>一文的思路,推测中文问题仍然是字符串的长度造成的,于是写个测试代码跟踪调试一下:

    Code
         DoString下断点,F5,断下,F11,看到代码:
    Code

         因该就是这里的luaL_loadbuffer出错了,在F11,到了luaxlib.c,看到代码:

    Code

         果然,也是一个ls.size=size的赋值,看看IDE提示的size的值,79,这不正是错误的原因么,

    修改代码如下:

    Code
         重新编译,运行,中文出来了^_^.可以慢慢享受lua和.net带来的快感了
  • 相关阅读:
    C/S和B/S结构区别整理
    JavaScript特点、优缺点及常用框架
    ExtJs特点、优缺点及注意事项
    Oracle SQL 脚本跟踪
    解决 C#中 SQL脚本执行超时 问题
    oracle 时间转化函数及常见函数 .
    Spring.NET 1.3.2 集成 NHibernate 3.2 1 下载软件
    SQL Server 跨服务器 不同数据库之间复制表的数据的方法:
    spring.net nhibernate 分布布式事务(上)
    set xact_abort ON 你懂的, 在分布式数据库事务中,用到. 在事务中,若出现错误,系统即默认回滚事务
  • 原文地址:https://www.cnblogs.com/Red_angelX/p/1428245.html
Copyright © 2011-2022 走看看