Я работаю над mfc dll, доступ к которому осуществляется через скрипт, и все это прекрасно работает.Я добавил к нему многопоточный компонент и пытаюсь использовать функцию WriteFile () для записи в мой последовательный порт, но каким-то образом функция WriteFile () выходит из приложения после выполнения 2-й команды записи.
Без бита многопоточности все работает нормально, и я могу применить столько команд writefile, сколько захочу.
Многопоточность: я использую
CreateThread(NULL,0,WorkerThread,this,0,0);
для создания своего потока.Использование «WorkerThread» для выполнения операций записи файла, описанных ранее в фоновом режиме.
Кроме того, мне нужно использовать функцию Sleep () во время записи через определенные мной интервалы.На данный момент программа просто закрывается при попытке использовать Sleep ().Итак, я только что удалил его, но понадобится на более позднем этапе.
Это известная проблема или что-то с очевидным решением?
Обновление: у меня есть сортировкапопытался приблизиться к проблеме, но так и не смог ее решить.По-видимому, похоже, что есть некоторые проблемы с моими параметрами WriteFile ().
WriteFile(theApp.m_hCom,tBuffer,sizeof(tBuffer),&iBytesWritten,NULL);
Он неправильно принимает sizeof (tBuffer) и из-за этого происходит сбой.Я извлек строку, которая должна быть передана, что в точности соответствует тому, что мне нужно передать, но она вылетает из программы, если я пишу код, как сделано выше (для WriteFile ()).Когда я сохраняю длину строки, т.е. вручную устанавливаю параметр sizeof (tBuffer) равным 14, тогда программа запускается, но команда не выполняется, так как общий размер строки буфера равен 38. Срочно нужна помощь по этому вопросу.
Пожалуйста, дайте мне знать.
Заранее спасибо.