Po zmianie poprzedniego kodu na poniższy nadal pojawia się błąd oraz otwiera się plik dbghook.c
:
void GenCP(){
GenCR();
GenWN (Ub[1][1], Ub);
Ub[1][1].Rd = 1;
for (short int TB_01 = h - 1; TB_01 >= 0; TB_01--){
if (Ub[1][1].tS[w / 2][TB_01][w / 2] == 1 || Ub[1][1].tS[w / 2][TB_01][w / 2] == 2){
Postac.Y = (TB_01 + 5) * skala * 2;
break;
}
}
WST (0, Postac.X, Postac.WX, Postac.Y, Postac.Z, Postac.WZ);
wkElement = 3;
TH.GN = 0;
}
int messageloop(){
MSG msg;
ZeroMemory(&msg, sizeof(MSG));
while(true)
{
BOOL PeekMessageL(
LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg
);
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else{
currTime = timerU.GetTime();
if (wyjscie == 1){
DestroyWindow(hwnd);
}
if (gra == 1 && Ub[1][1].Rd == 1 && wmenu == 0 && gmenu == 0){
Game();
if (GT == 0){
GT = 1;
}
}else if (GT == 1){
GM = 1;
}
if (gra == 1 && TH.GN == 0 && Ub[1][1].Rd == 0){
XpostacX = RozmiarS / 2;
ZpostacZ = RozmiarS / 2;
XDCC = 1;
ZDCC = 1;
TH.GN = 1;
std::thread GenTH (GenCP);
// GenCP();
// std::thread GenerowanieTH (Generowanie, Ub[1][1], Ub, RozmiarS / 2, RozmiarS / 2, 0);
}
Scena();
gen();
oldTime = currTime;
}
}
return msg.wParam;
}
`Microsoft Visual Studio C Runtime Library has detected a fatal error in Game.exe.
Press Break to debug the program or Continue to terminate the program.`
EDIT: Problem rozwiązany, wystarczyło użyć funkcji detach()
bezpośrednio po stworzenie wątku.