久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

無法將“const char*"轉(zhuǎn)換為“LPCWSTR {aka const w

cannot convert #39;const char*#39; to #39;LPCWSTR {aka const wchar_t*}#39;(無法將“const char*轉(zhuǎn)換為“LPCWSTR {aka const wchar_t*})
本文介紹了無法將“const char*"轉(zhuǎn)換為“LPCWSTR {aka const wchar_t*}"的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我在我的 C++ 代碼中遇到一個我無法理解的錯誤.精簡后的代碼位在這里:

I'm getting an error in my C++ code that I can't quite make sense of. The stripped down code bits are here:

RS232Handle=OpenRS232("COM1", 9600);

HANDLE OpenRS232(const char* ComName, DWORD BaudRate)
{
    ComHandle=CreateFile(ComName, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
}

我收到以下錯誤:

error: cannot convert 'const char*' to 'LPCWSTR {aka const wchar_t*}' for argument '1' to 'void* CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE)'
     ComHandle=CreateFile(ComName, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

代碼取自 VS 代碼,我現(xiàn)在使用 Qt creator.

The code was taken from VS code and I am now using Qt creator.

我該如何解決這個問題?謝謝!

How can I fix this issue? Thanks!

推薦答案

Windows CreateFile 函數(shù)實際上是一個擴展為以下之一的宏:

The Windows CreateFile function is actually a macro that expands to one of:

  • CreateFileA,它采用 const char*
  • 類型的文件路徑
  • CreateFileW,它采用 const wchar_t* 類型的文件路徑.
  • CreateFileA, which takes a file path of type const char*
  • CreateFileW, which takes a file path of type const wchar_t*.

(Windows API 中大多數(shù)采用字符串的函數(shù)也是如此.)

(The same is true for most of the functions in the Windows API that take a string.)

您聲明了參數(shù) const char* ComName,但顯然編譯時定義了 UNICODE,因此它調(diào)用了 W 版本的功能.沒有從 const wchar_t*const char* 的自動轉(zhuǎn)換,因此出現(xiàn)錯誤.

You're declaring the parameter const char* ComName, but apparently compiling with UNICODE defined, so it's calling the W version of the function. There's no automatic conversion from const wchar_t* to const char*, hence the error.

您的選擇是:

  1. 將函數(shù)參數(shù)更改為 UTF-16 (const wchar_t*) 字符串.
  2. 保留 char* 參數(shù),但讓您的函數(shù)使用 MultiByteToWideChar.
  3. 顯式調(diào)用 CreateFileA 而不是 CreateFile.
  4. 在不使用 UNICODE 的情況下編譯您的程序,以便宏默認擴展為 A 版本.
  5. 綁架一位著名的 Microsoft 開發(fā)人員并強迫他閱讀UTF-8 Everywhere,直到他同意讓 Windows 完全支持 UTF-8 作為ANSI"代碼頁,從而使各地的 Windows 開發(fā)人員擺脫這種寬字符的束縛.
  1. Change the function parameter to a UTF-16 (const wchar_t*) string.
  2. Keep the char* parameter, but have your function explicitly convert it to a UTF-16 string with a function like MultiByteToWideChar.
  3. Explicitly call CreateFileA instead of CreateFile.
  4. Compile your program without UNICODE, so that the macros expand to the A versions by default.
  5. Kidnap a prominent Microsoft developer and force him to read UTF-8 Everywhere until he agrees to have Windows fully support UTF-8 as an "ANSI" code page, thus freeing Windows developers everywhere from this wide-character stuff.

我不知道是否涉及綁架,但 Windows 10 1903 終于添加了支持 對于 UTF-8 作為 ANSI 代碼頁.

I don't know if a kidnapping was involved, but Windows 10 1903 finally added support for UTF-8 as an ANSI code page.

這篇關(guān)于無法將“const char*"轉(zhuǎn)換為“LPCWSTR {aka const wchar_t*}"的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 久久久久蜜桃 | 97青青草 | 黄色小视频免费 | 蜜桃视频一区二区 | 一级片黄色 | 国产欧美一区二区精品性色超碰 | 九九精品免费视频 | 欧美视频a | 中文字幕一区二区三区四区 | 国产九九精品 | 九九热这里有精品 | 欧美成人精品一区二区三区在线看 | 在线免费黄色网址 | 伊人精品 | 日韩欧美国产综合 | 日韩精品三区 | 日韩中文字幕在线视频 | 国产二区视频在线观看 | 久久久久久久久久久久久久久久久 | 欧美深夜福利 | 欧美一二 | 亚洲免费网站 | 欧美日韩在线看 | 久久久久久久97 | 日韩精品一区二区三区免费视频 | 国产欧美成人 | 欧美综合网 | 欧美激情区 | 毛片在线免费播放 | 欧美精品在线视频 | 午夜小视频在线观看 | 久久久噜噜噜 | 国产一区二区三区四区 | 色婷婷精品 | 国产成人精品亚洲男人的天堂 | 亚洲精品美女 | 9l视频自拍九色9l视频成人 | 中文字幕在线免费观看 | 中文字字幕码一二三区 | 日韩一级淫片 | 欧美精品久 |