Jimmy Liu

Tecuion -- www.tecuion.com
posts - 3, comments - 0, trackbacks - 0, articles - 0

2009年9月3日

    最近在做一个ObjectArx二次开发项目,刚开始是在AutoCAD2005平台下使用VC.net2002 + ObjectArx2005开发的,后来用户要求迁移到AutoCAD2008平台下,于是使用VC.net2005重新编译了一下这个工程,发现一堆error和warring,经过一番痛苦的修改,终于编译通过。现将问题总结如下:
1. VS2005使用的是UNICODE,而VS2002使用的是ANSI;因此直接转换过去的工程需要在工程设置中“使用Unicode字符集”(项目->属性->配置属性->字符集->使用Unicode字符集)。
2. 转换后的工程的源码中存在最大的问题是关于字符串的,主要有以下几个方面:
   (1) 字符串文字需使用 _T("") 宏,不能直接使用双引号括起来,如:_T("Jimmy");
   (2) 定义字符串需使用TCHAR,而不能使用char;
   (3) 相关字符串的操作需使用兼容Unicode的函数,如:
    UNICODE              ANSI
    ---------------------------------------
    _tcsicmp              stricmp
    lstrlen                  strlen
    lstrcpy                 strcpy
         lstrcpyn                strncpy
    _stprintf              sprintf

posted @ 2009-09-03 09:16 ChiminLau 阅读(235) 评论(0) 编辑