Chr*_*erw 8 c++ visual-studio visual-studio-2010-beta-2
错误C2664:'strcpy':无法将参数1从'TCHAR*'转换为'char*'代码:
LPCTSTR name, DWORD value
strcpy (&this->valueName[0], name);
Run Code Online (Sandbox Code Playgroud)
错误C2664:'strlen':无法将参数1从'LPCTSTR'转换为'const char*'
LPCTSTR name;
strlen (name)
Run Code Online (Sandbox Code Playgroud)
以上代码在另一个项目中工作正常的类,我找不到它在MS VS2010项目中不起作用的原因.
可能是因为TCHAR被定义为你的一个项目中的char,而不是VS2010中可能是wchar_t的那个.
如果您的项目定义了UNICODE/_UNICODE,这与在项目设置中将其指定为Unicode构建相同,则TCHAR将为wchar_t.
您基本上需要决定是否使用Unicode,如果这样做,您需要将常规调用strncpy等更改为宽字符等效或使用改变与TCHAR相同方式的t变体.查看strncpy或其他函数的帮助,以查看调用wide或t变量的内容.
您还可以查看MSDN以获取strcpy等调用,您可以在其中看到wide-char版本称为wcscpy,而t版本称为_tcscpy.如果你打算在不同项目中使用UNICODE或不使用UNICODE的代码,或者做出明智的决定你将使用哪一个然后坚持下去,我建议你坚持使用t版本.哪个更好取决于我会说的情景,并可能会引用一些"宗教"意见......
| 归档时间: |
|
| 查看次数: |
33894 次 |
| 最近记录: |