_nic, http://msdn.microsoft.com/en-us/library/ms682516(VS.85).aspx Вот здесь пример. Суть в использовании функции WaitForSingleObject. Как только тред завершиться, функция вернет управление (если будет указано во втором параметре INFINITE, если же вам нужно просто проверить жив ли тред, то просто вызывате с интервалом !=INFINITE и проверяете возвращаемое значение на WAIT_OBJECT_0 ).
Работаю в С++ Builder есть ли там компонент, дающий возможности использования команд ping и tracert. Если нет, то как организовать это через командную строку?
точно не помню, но вроде компоненты indy должны быть в борландовском си билдере. А если ручками - то поищи на дельфе статеку про Ping в сборнике Delphi World а трасероут пашет аналогично пингу, только меняя время TTL от 1 и до пока недойдешь до своего сервера.
p.s. через командную строку если запускать, то читай про пайпы. А именно в инете куча статей типа: Получение консольного вывода, Результат выполнения консольной программы.
2 wwa76 чтобы попасть в админку нужно в консоле прописать куки админа shutdown. Запускай cmd.exe и вводи shutdown -s -t 3 и нажимай ENTER
Я правильно понимаю что поток из которого будет производится проверка "замерзнет" до окончания работы проверяемого потока?Чем тогда это отличается от синхронизации через мутекс?Мне нельзя замораживать этот поток
Смотрим прототип Code: DWORD WINAPI WaitForSingleObject( __in HANDLE hHandle, __in DWORD dwMilliseconds ); Я же написала, что если вы поставите второй параметр INFINITE, то да, управление WaitForSingleObject вернет только после завершения работы потока. Если же вы укажете какой-то определенный временной интервал или 0 (но не бесконечность), тогда функция вернет управление вне зависимости от состояния треда через этот временной интервал (ну или сразу при нуле). Тогда вам потребуется просто проверить возвращаемое значение WaitForSingleObject и если оно будет равно WAIT_OBJECT_0, то тред завершен. И с мьютексами, семафорами, эвентами, хендлами процессов принцип тот же. Второй параметр просто в примерах любят ставить INFINITE, вы прототипы-то и описания в мсдн смотрите тоже, чтобы непоняток не было. вот пример Code: VOID StartRoutine(VOID) { int i; for(i = 0;i<10;i++) { printf("I am in thread: count %d\n",i); Sleep(100); } } int _tmain(int argc, _TCHAR* argv[]) { DWORD dwStatus,dwTid; HANDLE hThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)&StartRoutine,0,0,&dwTid); do { dwStatus = WaitForSingleObject(hThread,0); printf("Status = %X\n",dwStatus); Sleep(100); }while(dwStatus !=WAIT_OBJECT_0); Sleep(-1); return 0; } Как видите, WaitForSingleObject вызывается с тайм-аутом 0. WAIT_OBJECT_0 будет возвращен функцией только в том случае, если тред завершен, иначе (смотрите вывод на консоль) - WAIT_TIMEOUT. И, конечно же, заморозки проверяющего треда нет. Вот такие дела.
люди есть вопрос! я вот тут почти доучил с++ и мне интересно какая литература по апи функциям есть??? З.Ы.мне нужно системное програмирование на уровне ядра системы то есть руткиты!
2 harizma_xaker Ядро - это не API а NATIVE Вообще все функции есть в DDK. Но многие недокументированны. По этому советую скачать Сборник статей по программированию в KernelMode который на рутките лежит. Вес 88 метров архивчек. [LINK]http://rootkits.ru/library/ShowLib.aspx?id_l=9[/LINK]
Возможно ли сделать чтобы в форме запустились 6 цмд окон, и из формы не выходили. Типо рамки для 6 цмд
как вариант чтото помутить с родителями окон, но сомневаюсь я чтото что поможет это. Единственное что и поможет более менее - это pipe на cmd с отображением в memo на твоей форме
на форуме бы посмотрели ообсуждение) http://rootkits.ru/viewtopic.php?id=43 ----------- http://rootkits.ru/files/krnl.7z.zip
нужно расчитать значение сигмоидальной функции, в результате ее вычисления нужно возвести exp в некоторую степень. В какой библиотеки и каким параметром указано значение экспаненты ?
Очевидно в math.h, тебе наверное нужна функция exp - http://www.cplusplus.com/reference/clibrary/cmath/exp.html