2013-05-29 137 views
0

可以使用UNICODEMULTI-BYTE编译同一项目的文件吗?我想我在某个地方看到你可以用#ifndef后卫来做到这一点,但我不确定这是否属实,因为我没有太在意。 我问这个,因为我有一个项目与unicode集,我复制了一些文件,用non-unicode写。Visual Studio编译文件

CString m_strWork1 = "some text"; 
Write(LPCTSTR(m_strWork1), m_strWork1.GetLength()); 

在这个例子中我得到这个错误:cannot convert parameter 1 from 'LPCTSTR' to 'const char *

+0

这里有一个的jsfiddle如果有人想编辑代码:) http://jsfiddle.net/UYpw5/ – Forza

回答

1

你可以混合CStringW(Unicode)的和CStringA(多字节)在相同的代码,没有任何问题:

CStringA m_strWork1 = "some text"; 
Write(LPCSTR(m_strWork1), m_strWork1.GetLength()); 
+0

使用'CStringA'引发此错误:'不能从'CStringA'转换为'LPCTSTR'' – MRM

+0

它是我的代码中的'LPCSTR',而不是'LPCTSTR'。注意不同点:'LPCTSTR'(tchar,#ifdef dependent)vs'LPCWSTR'(Unicode,#ifdef independent)vs'LPCSTR'(多字节,#ifdef独立) – Liviu

+0

哦,对不起。工作,顺便说一句。 – MRM