我正在做一个支持各国语言的编辑器,有些国家语言很奇特,如阿拉伯文,不仅输出方向从右到左,而且单词的重组以及光标光标定位十分复杂。
我觉得如果自己处理,算法几乎是很难实现的。在网上查找了下,可以通过微软复杂文本布局引擎Uniscribe的操作类库来处理多语言问题。
也得到了PUDN上面的2个实例代码,可是两个实例在XP下都无法编译通过,有一个实例带有编译好的可执行文件,但是运行后输入显示不正确,
连中文都无法正确显示。由于CSDN不会上传附件,所有两个实例代码请到这里下载:
http://www.sunxin.org/forum/thread/15530.html请高手帮忙分析指点,多谢!

解决方案 »

  1.   

    用RichEdit+unicode可以了,以前做过!
      

  2.   

    要支持多语言,用unicode然后把各种字符串等放到统一的资源中...
      

  3.   

    ///////////////////////////////////////////////////////////
    要支持多语言,用unicode然后把各种字符串等放到统一的资源中...
    //////////////////////////////////////////////////////////不是那么简单的事情,阿拉伯文是从右向左输出的,并且组词会动态改变,不是只是输出的问题,还有光标的定位等等。
      

  4.   

    参考BCG库
    我记得BCG库有这种处理
      

  5.   

    看过自己实现的编辑控件类的,不过那个肯定不支持阿拉伯,因为连unicode都不支持。阿拉伯从右到左编辑,好像他们的文字也是一个字符一个字符的,不知道他们的mbcs编辑软件编集英文什么样。
      

  6.   

    大家去http://www.sunxin.org/forum/thread/15530.html 
    下载代码看看,为什么无法编译通过呢?先看了这个支持多国语言的Uniscribe再讨论吧!
      

  7.   

    neatpad那个用unicode配置编译啊,出错信息里不是说了?
      

  8.   

    首先UNICODE是必须的
    其次,对于不同国家的语言,里面的选择等都不一样,特别是方向不一样的(左右),还有字体问题,有些字体添加了,会不一样的,所以,对于使用何种语言,就必须对字体有一个相应的对应,好像里面有区域设置,具体要楼主自己调试!
    最后,每次做一种语言输入的时候,最好使用的系统就是该语言的系统,有些语言通过改动系统的语言,是出不来那种效果的!
    楼主想做好,不容易呀!
      

  9.   

    两个工程Neatpad和UspDemo编译都是同样的错误:
    fatal error C1083: Cannot open include file: 'usp10.h': No such file or directory如何使用unicode配置,是在编译的时候选择Win32 Unicode这些来编译就可以了?我的电脑只安装了VC6.0,没有安装VS2005等版本,出错原因是不是与着有关,无法找到头文件usp10.hNeatpad工程似乎是没有做完,里面有个可执行文件,输入不对,连中文都不能正确输入!
    UspDemo工程我又无法通过编译
      

  10.   

    是platform sdk太老了,装vs最新版本或者去下载psdk,现在最新的支持windows7beta
    下载那个vista的就可以了
      

  11.   

    做成不同资源,什么地方都用loadstring,不用明码.