明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1723|回复: 6

求助

[复制链接]
发表于 2011-1-10 21:25:54 | 显示全部楼层 |阅读模式
VS 2002中通过的下列函数到VS2005应该怎么写:


rb = acutBuildList(RTNIL,0);
              acedPutSym("app", rb);


acutRelRb(rb);
改写成下列式样后,还是不行:

rb = acutBuildList(RTNIL,0);
      
acedPutSym(_T("app"), rb);



acutRelRb(rb);

 楼主| 发表于 2011-1-14 13:30:35 | 显示全部楼层
查看了一些资料,问题解决了。

1.问题:       
                         rb = acutBuildList(RTNIL,0);
                        acedPutSym("app", rb);
                        acutRelRb(rb);
2.改写成
                         rb = acutBuildList(RTNIL,0);
                        acedPutSym(_T("app"), rb);
                        acutRelRb(rb);
还是不行

3. 改写成
                         rb = acutBuildList(RTNIL,0);
                        acedPutSym(L"app", rb);
                        acutRelRb(rb);
就OK了
发表于 2011-1-14 17:21:14 | 显示全部楼层
你的代码没有定义Unicode吧。
_T是个宏,在没有定义Unicode情况下,它等于没有。而L则是代表强制Unicode。
希望你经过问题找到原因:)共同进步。有答案记得分享哈,呵呵
等待你Double Confirm
 楼主| 发表于 2011-1-14 20:53:42 | 显示全部楼层
Character Set, 属性是“Use Multi-Byte Character Set”。
#include "tchar.h"也加了·
发表于 2011-1-16 23:43:55 | 显示全部楼层
你把字符集设置成Unicode时,_T()才起作用吧?
其实这个宏最终也是转化成L
发表于 2011-1-17 09:10:35 | 显示全部楼层
需要在代码中定义Unicode.Windows核心编程中专门一章进行介绍。
_T是经过条件编译的,作用就是使在运用预定义Unicode和没有运用预定义Unicode的平台上能编译出不同结果。
大概如下结构
#ifdef _Unicode
  _T("abc") = L("abc")
else
  _T("abc") = ("abc")
#endif
发表于 2014-12-3 16:13:58 | 显示全部楼层
bluelightcsy 发表于 2011-1-17 09:10
需要在代码中定义Unicode.Windows核心编程中专门一章进行介绍。
_T是经过条件编译的,作用就是使在运用预定 ...

确实是条件编译,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:28 , Processed in 0.185596 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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