0
調用CreateThread
函數時收到錯誤消息。未聲明的標識符錯誤消息
#include "stdafx.h"
#include "Functions.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[]) {
DWORD TidA, TidB, TidC;
HANDLE task1, task2, task3;
task1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Thread1, NULL, 0, &TidA);
task2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Thread2, NULL, 0, &TidB);
task3 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Thread3, NULL, 0, &TidC);
SetThreadPriority(task1, THREAD_PRIORITY_HIGHEST);
SetThreadPriority(task2, THREAD_PRIORITY_NORMAL);
SetThreadPriority(task3, THREAD_PRIORITY_LOWEST);
CloseHandle(task1);
CloseHandle(task2);
CloseHandle(task3);
}
void Thread1()
{
printf("Task#2 >>> started\n");
int *firstFunc = (new Functions())->firstFunc(Data::vectorInitialize(), Data::matrixInitialize(), Data::matrixInitialize());
Sleep(3000);
Data::vectorOutput(firstFunc);
printf("\nTask#2 >>> finished\n");
}
void Thread2()
{
printf("Task#1 >>> started\n");
int **secondFunc = (new Functions())->secondFunc(Data::matrixInitialize(), Data::matrixInitialize(), Data::matrixInitialize(), Data::matrixInitialize());
Sleep(2000);
Data::matrixOutput(secondFunc);
printf("\nTask#1 >>> finished\n");
}
void Thread3()
{
printf("Task#3 >>> started\n");
int *thirdFunc = (new Functions())->thirdFunction(Data::matrixInitialize(), Data::matrixInitialize(), Data::vectorInitialize());
Sleep(1000);
Data::vectorOutput(thirdFunc);
printf("\nTask#3 >>> finished\n");
}
這裏是錯誤消息:
error C2065: Thread1: undeclared identifier
error C2065: Thread2: undeclared identifier
error C2065: Thread3: undeclared identifier
移動上述主要功能,或者向前申報。 (P.S:這已被問了很多很多次) – Borgleader 2014-10-27 21:08:56
這是一個編譯時錯誤,而不是運行時異常。 – 2014-10-27 21:09:36
請勿打電話回覆。改爲給他們正確的類型。更好的是,使用標準的線程庫。 – chris 2014-10-27 21:11:04