2013-05-29 136 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