1. 程式人生 > >VS2005 中error C2440: 如無法從“const char [N]”轉換為“LPCWSTR” 的一點總結

VS2005 中error C2440: 如無法從“const char [N]”轉換為“LPCWSTR” 的一點總結

一般出現這種BUG 的,是由於字符集的問題。在vs2005中有兩個字符集,Unicode 和 Muti-bye。

LPCTSTR在Multi-byte Character方式下與const char*等價,在Unicode方式下與const tchar*等價。所以在Unicode方式下對其賦值像下面這樣:

LPCTSTR location = _T("Software//");//加_T進行轉化

否則報錯:error C2440: “初始化”: 無法從“const char [10]”轉換為“LPCTSTR”

同樣在Unicode方式下對於AfxMessageBox(_T("Software//"));

否則報錯: error C2665: “AfxMessageBox”: 2 個過載中沒有一個可以轉換所有引數型別

遇到這種BUG的修改方法為:
1.中文版:

工程-》設定屬性-》配置屬性-》常規-》專案預設值-》字符集

注意:
原來是Unicode (安裝時的預設值)
改為使用多字符集   。如下圖中彩色部分,自己看吧!

2.英文版:

Project-》Properties-》Configuration Properties-》General-》Project Defaults-》Character Set

相關推薦

VS2005 error C2440: 無法const char [N]”轉換LPCWSTR” 的一點總結

一般出現這種BUG 的,是由於字符集的問題。在vs2005中有兩個字符集,Unicode 和 Muti-bye。 LPCTSTR在Multi-byte Character方式下與const char*等價,在Unicode方式下與const tchar*等價。所以在Unic

error C2440: 無法const char [N]”轉換LPCWSTR” 的一點總結

一般出現這種BUG 的,是由於字符集的問題。在vs2005中有兩個字符集,Unicode 和 Muti-bye。 LPCTSTR在Multi-byte Character方式下與const char*等價,在Unicode方式下與const tchar*等價。所以在U

error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 const char [9]”轉換“LPCTSTR”

報錯 連接失敗 更新 vs2015 轉換 nbsp b-s ons code error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 無法將參數 1 從“const char [9]”轉換為“LPCTSTR”

C++ 錯誤提示:無法將引數1const char [8] 轉換char *

#include <iostream> using namespace std; void test(char * p) { cout << p << endl; } int main(void) { test("geerniya")

無法將引數1const char [6]”轉換char *”的解決方法

        有一些C++程式在VS2017上執行會有一些錯誤,而在vc6.0中卻能執行出來。接下來的一個程式就是我在vs2017上執行出現錯誤,而在vc6.0上執行出來。但我已經通過分析vs2017上錯誤來源解決了該問題,並以此作為分享。例項碼:#include<i

C++編譯出現 error C2664: 不能將引數 2 const char [5]”轉換“LPCTSTR”解決辦法。

原因:編譯程式的時候出現這樣的錯誤,原因是在新建MFC專案的時候,設定字符集Unicode的屬性 解決方法一: 在VS的解決方案管理器視窗內,右擊你的專案“專案”,然後選“屬性”(最後一項),再點“配

VC2008編譯出現error2664錯誤:Format(const wchar_t *,...)”:不能將引數 1 const char [4]”轉換const wchar_t *”

void scesjk::OnBnClickedButton1()              //資料記錄 {     // TODO: 在此新增控制元件通知處理程式程式碼     UpdateData(true);     m_set.Open();     m_set.A

[error2664:Format(const wchar_t *,...)”:不能將引數 1 const char [4]”轉換const wchar_t *”]的解決

void scesjk::OnBnClickedButton1()              //資料記錄 {     // TODO: 在此新增控制元件通知處理程式程式碼     UpdateData(true);     m_set.Open();     m_set.A

:MessageBoxW”: 不能將引數 1 const char [5]”轉換“LPCTSTR” 1> 與指向的型別無關;轉換要求 reinterpret_cast、C 樣式

MessageBox("系統選單","提示",MB_OK|MB_ICONINFORMATION); MessageBox(_T("系統選單"),_T("提示"),MB_OK|MB_ICONINFORMATION);  或MessageBox(L"系統選單",L"提示"

不能將引數 2 const char [7]”轉換“LPCTSTR”問題解決辦法

如下語句: ctrlList.InsertColumn(0, "屬性頁", LVCFMT_LEFT, 300, 0); 使用VS2005編譯時提示如下錯誤資訊: error C2664: “int CListCtrl::InsertColumn(int,LPCTSTR,in

error C2440: “初始化”: 無法const char *”轉換char *”

onst char* pc_char = 0;  char *cP = pc_char; ////////////////////////////////////////////////// const char* pc_char = 0;  char *cP = co

error C2440: “static_cast”: 無法“LRESULT (__thiscall CTextProgressCtrl::* )(UINT,LPCTSTR)”轉換“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)

目標 div line rdquo ria 升級 ret error lpctstr 轉自原文 error C2440 “static_cast” 無法從“void (__thiscall C* )(void)...

error C2440: “static_cast”: 無法“void (__thiscall CMainFrame::* )(void)”轉換“LRESULT (__thiscall CWnd

error C2440: “static_cast”: 無法從“void (__thiscall CMainFrame:? )(void)”轉換為“LRESULT (__thiscall CWnd:? )(WPARAM,LPARAM)” 在學習孫鑫《VC++深入

關於 錯誤 C2440 “初始化”: 無法const char *”轉換“cv::Formatted *”的一種可能

嚴重性 程式碼 說明 專案 檔案 行 禁止顯示狀態 錯誤 C2440 “初始化”: 無法從“const char *”轉換為“cv::Formatted *” f:\opencv\opencv\build\include\opencv2\core\ptr.inl

error C2440: “static_cast”: 無法“LRESULT ”轉換“LRESULT

首先出現這個錯誤: BEGIN_MESSAGE_MAP(CClientDlg, CDialog) //{{AFX_MSG_MAP(CClientDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON

VS2008關於“MessageBoxW”: 不能將引數 2 char [20]”轉換LPCWSTR”的錯誤解決

問題:1>d:\users\yangtse\documents\visual studio 2008\projects\winmain\winmain\54.cpp(27) : error C2440: “=”: 無法從“const char [14]”轉換為“LPCW

解決不能CONST CHAR *轉換LPCWSTR

有時候複製了整個框架程式確發現有編譯不通過的問題,命名人家的程式編譯能通過,到了自己編譯的時候卻編譯不能通過,這個時候也許有各種問題,有些問題讓人匪夷所思。 編譯器有時候會根據編碼方式來選擇定義為LPCWSTR還是LPCTSTR LPSTR: 32bit

實戰c++的string系列--string與char*、const char *的轉換(data() or c_str())

在工程中,我們也有很多時候用到string與char*之間的轉換,這裡有個一我們之前提到的函式 c_str(),看看這個原型: const char *c_str(); c_str()函式返回一個指向正規C字串的指標, 內容與本string串相同. 這

劍指offer:整數1出現的次數(1到n整數1出現的次數)

題目描述 求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。ACMer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數(

JNI很有用的jstring 與 const char* 的相互轉換函式

JNT中很有用的jstring 與 const char* 的相互轉換函式 我們使用JNI的時候經常碰到jstring 與 const char*轉換的問題,以及中文編碼問題,這裡從網上看到的2個比較好的相互轉換函式,今天把它摘錄下來,以備用之。呵呵。 //將const c