highflybir 发表于 2007-8-29 15:07:00

初学,如何去掉“需要转换”这类错误?

我用vs2005+CAD2008+objectARX2008-32bit
编译简单的程序时发生的错误:
1>e:\c\arx2008\arx2008\hello.cpp(23) : error C2664: “acutPrintf”: 不能将参数 1 从“const char ”转换为“const ACHAR *”
1>      与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>e:\c\arxproject1\arxproject1\acrxentrypoint.cpp(97) : error C2664: “acedGetInput”: 不能将参数 1 从“char ”转换为“ACHAR *”
1>      与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
例如acutPrintf("\nString");这样的句子会发生上面的错误,改称acutPrintf(TEXT("\nString"));编译通过能运行。
但对acedGetInput用这样的方法还是出错,不知道何故?

fpiw 发表于 2007-9-12 22:23:00

acutPrintf(_T("\nstring");

xkaeli 发表于 2013-6-17 13:16:00

卡在相同的问题上了,求教版主这个问题怎么解决。

highflybird 发表于 2013-6-18 14:24:00


对这个问题,一般来说是要把
char 转化为TCHAR
引号的字符加_T ,例如   acutPrintf("Hello,world!")改为 acutPrintf(_T("Hello,world"));
另外涉及到字符的一些函数应该用unicode或者TCHAR的相应函数。
譬如 strcpy 改为 _tcscpy,strcmp改为_tcscmp等等。
具体怎么改法,可以查阅MSDN.
页: [1]
查看完整版本: 初学,如何去掉“需要转换”这类错误?