現在Qt CreatorでMingW32 G ++コンパイラを使用しています。Qt Creatorで標準のC++がコンパイルされない
私はそう、私はQtのネットワーク機能を使用することができますQtのにコードブロックからコードを作業の上に移植されましたが、コードの上にモーメントIポートは、それがのエラーでコンパイルに失敗します。
C:\software\Qt\AutoUpload\main.cpp:90: error: cannot convert 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' to 'LPCWSTR {aka const wchar_t*}' for argument '1' to 'void* FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW)'
HANDLE handle = FindFirstFile(dir, &search_data);
このエラーを与えるコードの一部がライン8:
1 vector<string> getFilesInDir(string directory)
2 {
3 vector<string> filenames;
4 string dir = string(directory + "\\*");
5
6 WIN32_FIND_DATA search_data;
7 memset(&search_data, 0, sizeof(WIN32_FIND_DATA));
8 HANDLE handle = FindFirstFile(dir.c_str(), &search_data);
9 while (handle != INVALID_HANDLE_VALUE)
10 {
11 if (FindNextFile(handle, &search_data) == FALSE) break;
12 if (search_data.cFileName == string(".") || search_data.cFileName == string(".."))
13 {
14 cout << "Ignoring..." << endl;
15 continue;
16 }
17 filenames.push_back(search_data.cFileName);
18 cout << search_data.cFileName << endl;
19 }
20
21 FindClose(handle);
22 return filenames;
23 }
なもののような他の質問は、これはUnicodeエンコーディングのWindows APIでいくつかの問題であることをhereとhere状態を発見しましたLPCWSTR
タイプで使用しますが、この回答は不完全または間違っています。 CodeBlocksとQt Creatorの両方での私のエンコーディング設定は、UTF-8であり、Unicodeやその他のエンコーディング方法ではありません。
Unicodeの問題の場合、ではなく、がVisual StudioまたはCodeBlocksでコンパイルされていますが、それは関係ありません。 ONLY環境は完全にはコンパイルされませんが、Qtにあります。
突然このコードが機能しなくなるQt Creatorとは何ですか?
表示されるエラーメッセージとコードが一致しません。 –
2番目の回答を参照してください。 http://stackoverflow.com/questions/8032080/how-to-convert-char-to-wchar-t – silentboy
はい、そうです。私は手作業で行番号を追加したので、エラーが発生している行を簡単に指摘することができました。 (コード8による8行目、コード90行目の90行目) コメントする前に実際に質問を読むべきでしょうか。 – Kats