2016-12-23 1 views
-1

codeblocks (빌드 옵션이 C++ 11로 설정 됨)를 사용하여 아래에 표시된 멀티 스레딩 예제 코드 (http://www.bogotobogo.com/cplusplus/multithreading_win32A.php에서 가져옴)를 가지고 놀았습니다. 나는 "cwchar"파일을 열었던 프로젝트를 구축하고 나는 아래와 같이 "선언되지 않은"오류의 거대한 목록을 가지고Codeblocks C++ 멀티 스레딩 거대한 오류 목록

#include <windows.h> 
#include <iostream> 
#include <stdio.h> 

DWORD WINAPI myThread(LPVOID lpParameter) 
{ 
    unsigned int& myCounter = *((unsigned int*)lpParameter); 
    while(myCounter < 0xFFFFFFFF) ++myCounter; 
    return 0; 
} 

int main(int argc, char* argv[]) 
{ 
    using namespace std; 

    unsigned int myCounter = 0; 
    DWORD myThreadID; 
    HANDLE myHandle = CreateThread(0, 0, myThread, &myCounter, 0, &myThreadID); 
    char myChar = ' '; 
    while(myChar != 'q') { 
     cout << myCounter << endl; 
     myChar = getchar(); 
    } 

    CloseHandle(myHandle); 
    return 0; 
} 

. 나는 무엇이 잘못되었는지, 어떤 생각이 확실하지 않습니까?

||=== Build: Debug in TEST2 (compiler: GNU GCC Compiler) ===| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|177|error: '::wcscat' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|178|error: '::wcscmp' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|179|error: '::wcscoll' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|180|error: '::wcscpy' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|181|error: '::wcscspn' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|183|error: '::wcslen' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|184|error: '::wcsncat' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|185|error: '::wcsncmp' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|186|error: '::wcsncpy' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|188|error: '::wcsspn' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|193|error: '::wcstok' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|196|error: '::wcsxfrm' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|204|error: '::wcschr' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|205|error: '::wcspbrk' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|206|error: '::wcsrchr' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|207|error: '::wcsstr' has not been declared| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar||In function 'wchar_t* std::wcschr(wchar_t*, wchar_t)':| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|213|error: invalid conversion from 'const wchar_t*' to 'wchar_t*' [-fpermissive]| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|212|note: initializing argument 1 of 'wchar_t* std::wcschr(wchar_t*, wchar_t)'| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar||In function 'wchar_t* std::wcspbrk(wchar_t*, const wchar_t*)':| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|217|error: invalid conversion from 'const wchar_t*' to 'wchar_t*' [-fpermissive]| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|216|note: initializing argument 1 of 'wchar_t* std::wcspbrk(wchar_t*, const wchar_t*)'| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar||In function 'wchar_t* std::wcsrchr(wchar_t*, wchar_t)':| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|221|error: invalid conversion from 'const wchar_t*' to 'wchar_t*' [-fpermissive]| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|220|note: initializing argument 1 of 'wchar_t* std::wcsrchr(wchar_t*, wchar_t)'| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar||In function 'wchar_t* std::wcsstr(wchar_t*, const wchar_t*)':| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|225|error: invalid conversion from 'const wchar_t*' to 'wchar_t*' [-fpermissive]| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\cwchar|224|note: initializing argument 1 of 'wchar_t* std::wcsstr(wchar_t*, const wchar_t*)'| 
c:\mingw\lib\gcc\mingw32\5.3.0\include\c++\bits\char_traits.h|358|error: 'wcslen' was not declared in this scope| 
||=== Build failed: 21 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===| 
+0

빌드하는 방법이 명확하지 않습니다. windows.h 헤더와 mingw를 사용하면 문제가 발생하는지 궁금합니다. – doctorlove

+0

예, 문제를 일으키는 windows.h입니다. 빈을 제외한 모든 것을 주석 처리했습니다. 주요 기능 및 내장 및 나는 동일한 오류가있어. 나는 그것을 고치는 법을 모른다. –

답변

0

#include <windows.h> 행을 원래 위치에서 #include <stdio.h> 행 아래로 이동하여 문제를 해결했습니다. 포함 모양은 다음과 같습니다.

#include <iostream> 
#include <stdio.h> 
#include <windows.h> 

내 이유가 무엇인지 물어 보지 마십시오.

2

오류 메시지를 읽어 보시기 바랍니다, 당신은 당신의 코드에 오타가 있습니다

HANDLE myHandle = CreateThread(0, 0, myThread, &myCounter;, 0, &myThreadID;); 

가 추가 제거를 ';' 이 줄에서 당신은 잘되어야합니다!

+0

여분의 세미콜론을 제거 했는데도 cwchar 파일의 문제가 해결되지 않습니다. 질문 코드와 오류 덤프가 업데이트되었습니다. –