1. 程式人生 > >編譯DirectX Tutorials時遇到的錯誤:"const wchar_t *" 型別的實參與 "LPCSTR" 型別的形參不相容

編譯DirectX Tutorials時遇到的錯誤:"const wchar_t *" 型別的實參與 "LPCSTR" 型別的形參不相容



typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR; 
可以知道LPCSTR代表了const char *型別,它是一個指向以'\0'結尾的8位(單位元組)ANSI字元陣列的常量指標, 而const wchar_t *型別是一個指向'\0'結尾的16位(雙位元組)Unicode字元陣列的常量指標. 在VS編譯器中直接輸入的字串常量(如“abc”)預設是以const char *的格式(即ANSI編碼)儲存的,因此會導致型別不匹配的編譯錯誤。 解決的辦法有兩個: 第一個方法是右擊“解決方案資源管理器”中的專案,“屬性→配置屬性→常規→專案預設值→字符集”,預設的選項是“使用多位元組字符集”,將它改為“使用Unicode字符集”即可。
這樣,輸入的字串會預設以const wchar_t *格式儲存。 第二個方法是使用_T巨集,它在“tchar.h”中定義,它能夠自動識別當前編譯器字串的儲存格式並做出相應轉換,避免這種型別的編譯錯誤。 具體使用方法為:將“abc”改為_T("abc")。

相關推薦

編譯DirectX Tutorials遇到的錯誤"const wchar_t *" 型別參與 "LPCSTR" 型別相容

typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR; 可以知道LPCSTR代表了const char *型別,它是一個指向以'\0'

VC++2017關於專案出現"const char *" 型別參與 "char *" 型別相容錯誤的解決方法

C++專案中經常會定義如下形式的字串char *testString = "This is test string...";這樣一直用的沒有問題, 但今天突然編譯報錯了~!報錯:"const char *" 型別的實參與 "char *" 型別的形參不相容之類的錯誤, 函式形

IntelliSense: "const char *" 型別參與 "LPCTSTR" 型別相容

在外面用vs2005編寫mfc程式的時候經常要MessageBox(“提示資訊”)函式,在vc6.0是沒有問題的,但是在vs2005卻會有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能將引數 1 從“const char [17]”轉換為“LPCTSTR” 這個錯誤

IntelliSense: "const char *" 型別參與 "LPCTSTR" 型別相容

unicode字元問題。2010工程預設是寬字元版本解決方法:選單 專案 -> 屬性 (開啟屬性頁) -> 配置屬性 -> 常規 -> 字符集  單前選中的應該是“使用Unicode字符集”,改為“使用多位元組字符集”

"const char*"型別參與LPCTSTR型別相容問題

"const char*"型別的實參與LPCTSTR型別的形參不相容 1、LPCTSTR是什麼? A  32-bit pointer to a contant character stirng that is portable forUnicode and DBCS(

c編譯錯誤程式中有遊離的‘\240’‘\302’‘\XXX 解決方案

偶爾從網上看到不錯的原始碼,想研究下,不幸編譯時遇到 “錯誤:程式中有遊離的‘\240’‘\302’”之類的錯誤, 大量的原始碼不可能再全部重敲一遍,經過一番研究,終於讓我找到簡單的解決方案,還是本著讓後人少走彎路的想法,分享下: 首先,編譯器提示的\xxx,都是8進位制的編

在命令列下編譯通過,執行提示錯誤到或無法載入主類的原因分析與解決方式

有時候我們需要直接用jdk提供的java命令來執行class檔案讓軟體執行起來,特別是很多初學者,但經常會發現如下提示: 用eclipse或用ant則沒有問題。 其實原因很簡單,我們忽略了2個細節。 1.java指令預設在尋找class檔案的地址是通過CLASSPATH環境變數中指定的目錄中尋找的。 2.

Linux下使用vi新建文件保存文件遇到錯誤E212: Can't open file for writing

mage images roo .cn logs 分享 思路 操作 新建 出現E212: Can‘t open file for writing的問題是由於權限問題導致的,解決方法有以下思路: 1、使用root進行登錄,然後再操作。 2、在使用命令時,前面加sudo

JavaScript onclick傳遞對象數(easyui傳遞一行數據錯誤uncaught SyntaxError: Unexpected identifier

提示框 edit fun 過程 傳遞對象 HR expected 思路 ide JavaScript onclick傳遞對象參數(easyui傳遞一行數據時)錯誤:uncaught SyntaxError: Unexpected identifier 博主遇到的是用on

Python3 引入sqlite3出現錯誤ModuleNotFoundError: No module named '_sqlite3'

err error SQ 解決 python re 編譯安裝 簡單的 class under 在Python3 中內置了SQLite3,但是在編譯安裝完之後執行: import sqlite3 出現錯誤: ModuleNotFoundError: No module

用idea+maven編譯打包spark project core錯誤java.lang.RuntimeException: Unable to load a Suite class

ide exception 5-0 sco anon time arp create run Discovery starting. *** RUN ABORTED *** java.lang.RuntimeException: Unable to load a Su

SQLServer 2016安裝錯誤Polybase要求安裝Oracle JRE 7更新51或更高版本

異常處理彙總-資料庫系列  http://www.cnblogs.com/dunitian/p/4522990.html 下載JDK7就可以了(裝8是不可以解決的) http://www.oracle.com/technetwork/java/javase/downloads

建立表空間出現錯誤ORA-27040以及開啟監聽服務提示網路協議介面卡錯誤

今天做oracle資料庫建立表空間的操作,一直提示ORA-27040,OSD -04002,O/s-Error(os 3)錯誤。 檢查了建立的語句是沒有問題的,刪除重建發現建立過程也是正確了,管理員方式執行SQLplus也不行,最後經過查詢和驗證才發現是我電腦許可權的問題(用的管理員許可

關於角點匹配,角點檢測後產生描述子後使用KNN匹配錯誤

cout<<"型別1: "<<desc1.type()<<endl; desc1.convertTo(desc1, CV_32F); desc2.convertTo(desc2, CV_32F); cout<<"型別2: "<

安裝win7 64位系統發生錯誤File: \windows\system32\winload.efi

描述發生的問題: 1.當前系統環境:Window 10 64位 2.我要安裝的系統:Window 7 64位 3.安裝程式GHOST已經安裝完,重啟後,發生了錯誤,如圖 發生錯誤的程式路徑:File: \windows\system32\winload.efi 報錯資訊:Inf

dism RestoreHealth 和 CheckHealth選項提示錯誤87

具體命令是: dism /online /cleanup-image /restorehealth dism /online /cleanup-image /checkhealth 修復系統檔案時,用到這兩個命令。 作業系統:win7 錯誤提示: 錯誤:87

Oracle建立自定義函式出現錯誤PLS-00103及PLS-00382

(作者:陳玓玏) 一、PLS-00103 一般出現這個錯誤,基本上可以確定是你的語法錯誤,或者是有中文的輸入。 比如說: 1、Oracle用elsif而你用的是else if; 2、直接從網頁中把程式碼貼上過來結果程式碼中有中文空格。 這種情況下,解決問題的方法

redis建立叢集顯示錯誤 [ERR] Node xxx is not empty. Either the node already knows other no...

純手打,轉載請附上本文網址!!! 在redis叢集配置的最後一步,使用命令報錯[ERR] Node xxx is not empty. Either the node already knows other no... redis-trib.rb create --rep

在scala中連線mysql出現錯誤Establishing SSL connection without server's identity verification is not recomm

在Scala中連線mysql時,輸入命令: scala> rebuyDF.write.mode("append").jdbc("jdbc:mysql://localhost:3306/dbtaobao", "dbtaobao.rebuy", prop) 出現錯誤如下: Wed No

已解決執行python manage.py makemigrations提示錯誤__init__() missing 1 required positional argument: 'on

 報錯資訊如下: (blog) λ python manage.py makemigrations Traceback (most recent call last): File "manage.py", line 15, in <module> e