Совет по всему Интернету для многопоточных приложений Win32 - по крайней мере, для MS Visual Studio - вам нужно связываться с многопотоковой библиотекой времени C вместо однопоточной (поэтому LIBCMT.LIB или LIBCPMT.LIB вместо LIBC.LIB или LIBCP.LIB). В настоящее время я использую Code :: Blocks с компилятором GCC, и я не уверен, что приведенный выше совет применим, или как изменить эти параметры ссылок, если это так. Я не могу найти ни один из вышеуказанных файлов, перечисленных в любом месте настроек сборки в среде IDE. Если я вызываю функцию «_beginthread» в простой тестовой программе, она, похоже, компилируется и запускается без каких-либо проблем, но я не уверен, что это доказывает. Я могу вызвать функцию «printf» из нового потока, и выход появится в главном окне консоли. Я не знаю, правильное ли это поведение или нет.Связывание многопоточных проверок времени для GCC в Code :: Blocks IDE
Любая помощь будет высоко оценена.
EDIT:
Спасибо, Тим за ваш ответ. Я не знаю, где найти флаги компилятора в этой среде IDE - это часть проблемы. Другая часть - я не знаю, что изменить, когда я их найду. Но вот моя простая тестовая программа - Я надеюсь, что это полезно:
#include <windows.h>
#include <process.h>
#include <stdio.h>
HANDLE ThreadHandle;
void RunThreadFunc(void *This) {
printf("%s", "Squeak.\n\n");
_endthread();
}
int main() {
Sleep(2000);
ThreadHandle = (HANDLE) _beginthread(RunThreadFunc, 0, NULL);
//printf("%s", "Woo.\n\n");
Sleep(2000);
return 0;
}
Не могли бы вы разместить свой код вместе со своими текущими флагами компилятора? – Tim