передо мной стоит задача изучить именно CreateThread
никак не могу понять, как будет выглядеть конструкция для, вот допустим, вывода на экран возвращаемого значения функции?
(int *)gn
(int)arg
для получения из указателя снова целого числа.&gn
и через этот же указатель возвращать значение.как теперь передать параметр?
char x[] = "ddd" или char *x = "ddd"
одинаково привычна и читабельна. А вот если вы начнете это заменять на самопальный string, то читающему сначала придется выяснить что это за тип и как с ним работать. Вот он будет удивлен, когда узнает, что это псевдоним для Сишных строк, оканчивающихся нулем.char*
.Так никогда не писали. ...
Когда появились нормальные терминалы - стали писать на ассемблере
Я думал создать порт от сети vpn
push "route <IP адрес локальной подсети> <маска подсети>"
push "route 192.168.1.0 255.255.255.0"
Я писал выше про использование глобальных переменных. Вариант имеет право на существование, но когда у тебя будет проект побольше и с несколькими потоками глобальные переменные вообще не вариант, как правило.
Вообще исопльзоавние глобальных переменных в принципе не очень хорошая идея, а не только для потоков.
В некоторых случаях это допустимо, но таких случаев не много.
И если уж ты хочешь научиться работать с потоками, то важно научиться и правильно передавать в поток параметры и принимать возвращаемое значение. И параметров и возвращаемых значений может быть не одно.
И это я еще не начинал говорить о совместном использовании данных разными потоками - это вообще отдельная огромная тема.
Обрати внимание, что твоя потоковая функция по сигнатуре не соответствует документации. Она должна быть такой: https://docs.microsoft.com/en-us/previous-versions...
Твой код в принципе рабочий, но стоит добавить опций компилятору, как он начнет ругаться на эту ошибку, по формальным признакам.
И еще - потоковая функция возвращает значение типа DWORD, в твоем случае можешь передавать возвращаемое значение потока через него, не используя глобальную переменную.
В POSIX потоковые функции возвращают указатель
void*