Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: проблемы с com портом под Windows XP  (Прочитано 40100 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 17-08-2003 16:41 » 

Как программу, написанную на VC6++ под Windows 98 (и работающую с com портом) заставить БЫЧИТЬ под Windows XP  ?
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #1 : 17-08-2003 16:47 » 

Она обязана работать если используются CreateFile WriteFile и т.д.
Если переделывалось с DOS читай устройство приема и отправки данный с COM портом на этом сайте.

Так как понял, что 3 сообщения 2 от гостя + это - твои, то стер остальные и повторяю, проблема не в версиях Windows а в твоей программе - подробности не помешают.

И не надо в будущем писать 3-5 раз одно и тоже, есил меня нет дома и народ отдыхает в воскресенье, то это ничего не даст.
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #2 : 18-08-2003 06:01 » 

И в форум по С/С++ тоже писать не надо, это в форум по Windows.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 18-08-2003 17:10 » 

С повторениями - это я по неопытности лопухнулся. :?
Да, я использовал функции CreateFile( Отлично ), WriteFile( Я шокирован! ), ReadFile( Отлично ). Я сделал вывод количества отправленных (функцией WriteFile) в порт байт в отдельное окно. Под W98 отправленное количество байт равно отправляемому, а под WXP  WriteFile возвращает 0 записанных байт!!!
(компиляция проги - под W98)
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #4 : 18-08-2003 18:21 » 

Понятно... то что не понятно почему.

1. Давай попробуем исследовать проблему, как долго попытки отработать отсылку вызывают 0 если сделать цикл, с попыткой протолкнуть в порт данные...

2. Откомпилируй программу под XP и попробуй прокатать ее под 98 - возможно это решит проблдему.

3. Проверь что возвращает открытие порта и проверь как ты открываешь порт (перекопируй сюда тот кусок кода, который делает эти операции)...
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #5 : 19-08-2003 05:27 » 

В старом форуме Grom приводил кусок кода для работы с com портом, я его компилил и он работал на Win2k, так что тот же кусок будет работать и на XP.
Вот этот код(там кое что о меня, оригинал я уже не найду)
Код:
                DWORD dwError;
DCB PortSetControl;
COMMTIMEOUTS CommTimeouts;
WCHAR* lpszPortName = L"COM1";

HANDLE hPort = CreateFileW (lpszPortName, // Pointer to the name of the port
GENERIC_READ | GENERIC_WRITE,
// Access (read-write) mode
0,            // Share mode
NULL,         // Pointer to the security attribute
OPEN_EXISTING,// How to open the serial port
0,            // Port attributes
NULL);        // Handle to port with attribute
// to copy
if(hPort == INVALID_HANDLE_VALUE)
{
dwError = GetLastError();
wprintf(L"Error == %d\n", dwError);
return 1;
}
   

PortSetControl.DCBlength = sizeof (DCB);
GetCommState(hPort,&PortSetControl);
//Set data
PortSetControl.BaudRate=CBR_19200;
PortSetControl.Parity=NOPARITY;
PortSetControl.ByteSize=8;
PortSetControl.StopBits=ONESTOPBIT;
PortSetControl.fBinary = TRUE; // Binary mode; no EOF check
PortSetControl.fParity = TRUE; // Enable parity checking
PortSetControl.fOutxCtsFlow = FALSE; // CTS output flow control off
PortSetControl.fOutxDsrFlow = FALSE; // DSR output flow control off
PortSetControl.fDtrControl = DTR_CONTROL_DISABLE;
// DTR flow control off
PortSetControl.fDsrSensitivity = FALSE; // DSR sensitivity
PortSetControl.fTXContinueOnXoff = TRUE; // XOFF continues Tx
PortSetControl.fOutX = FALSE; // No XON/XOFF out flow control
PortSetControl.fInX = FALSE; // No XON/XOFF in flow control
PortSetControl.fErrorChar = FALSE; // Disable error replacement
PortSetControl.fNull = FALSE; // Disable null stripping
PortSetControl.fRtsControl = RTS_CONTROL_DISABLE;
// RTS flow control off
PortSetControl.fAbortOnError = FALSE; // Do not abort reads/writes on
//Set to port
SetCommState(hPort,&PortSetControl);
//Settings for timeouts
GetCommTimeouts(hPort, &CommTimeouts);
//Set data
CommTimeouts.ReadIntervalTimeout = MAXDWORD;
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.ReadTotalTimeoutConstant = 0;
CommTimeouts.WriteTotalTimeoutMultiplier = 0;
CommTimeouts.WriteTotalTimeoutConstant = 0;
//Set to port
SetCommTimeouts(hPort, &CommTimeouts);

char* str = "THIS IS THE TEST SEQUENCE TO TEST TERMINAL SERIAL PORT SHARING";
DWORD dwBytesWrite;
if(WriteFile(hPort, str, strlen(str), &dwBytesWrite,NULL))
wprintf(L"Success. dwBytesWrite ==%d!\n",dwBytesWrite);
else
wprintf(L"Error!\n");

CloseHandle(hPort);
« Последнее редактирование: 19-11-2007 17:01 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 19-08-2003 12:31 » 

если честно, не ожидал такого внимания к новичку - до этого я попадал на какой-то форум, где мне так и не ответили.

теперь по пунктам:

1) Буду искать дистрибу XP и ставить вторую ОС для опытов. До этого в WXP я запускал программу на компе у заказчика, а он живёт далеко в горах (буквально, Златоуст ведь).

2)открытие порта у меня так
Цитата

//функция открытия порта
bool CProbnikView::OpenPort(CString *port, DWORD BaudRate,BYTE ByteSize,
         BYTE Parity, BYTE StopBits,DWORD portTimeoutInterval)
{
   DCB portDCB;
   COMMTIMEOUTS portCommTimeOuts;
   //создаём описатель порта
   portHandle = CreateFile(*port,GENERIC_READ | GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
   if(portHandle == INVALID_HANDLE_VALUE)
   {//не получилось открыть порт
      return false;
   }
   //установка размеров очередей I/O
   SetupComm(portHandle,(DWORD)CommInQueueSize,(DWORD)CommOutQueueSize);
   //создаём и заполняем структуру DCB (portDCB)
   if(!GetCommState(portHandle, &portDCB))
   {//какая-то ошибка
      return false;
   }
   portDCB.BaudRate = BaudRate;
   portDCB.fBinary = true;
   portDCB.fOutxCtsFlow = false;
   portDCB.fOutxDsrFlow = false;
   portDCB.fDtrControl = DTR_CONTROL_HANDSHAKE;
   portDCB.fDsrSensitivity = false;
   portDCB.fNull = false;
   portDCB.fRtsControl = RTS_CONTROL_DISABLE;
   portDCB.fAbortOnError = false;
   portDCB.ByteSize = ByteSize;
   portDCB.Parity = Parity;
   portDCB.StopBits = StopBits;
   //структурой DCB настраиваем порт
   if(!SetCommState(portHandle, &portDCB))
   {//какая-то ошибка
      return false;
   }
   //создаём и заполняем структуру COMMTIMEOUTS (portCommTimeOuts)
   if(!GetCommTimeouts(portHandle, &portCommTimeOuts))
   {//какая-то ошибка
      return false;
   }
   portCommTimeOuts.ReadIntervalTimeout = portTimeoutInterval;
   portCommTimeOuts.ReadTotalTimeoutMultiplier = TimeoutChar;
   portCommTimeOuts.ReadTotalTimeoutConstant = TimeOutWait;
   portCommTimeOuts.WriteTotalTimeoutMultiplier = 0;
   portCommTimeOuts.WriteTotalTimeoutConstant = 0;
   //структурой COMMTIMEOUTS настраиваем порт
   if(!SetCommTimeouts(portHandle, &portCommTimeOuts))
   {//какая-то ошибка
      return false;
   }
   //очистка буферов
   ClearCommRWbufer();
   
   return true;//всё нормально, порт открыт
}


3) Спасибо ГРОМУ и СлавИ за. Внимательно просмотрю сей коддд.

4)подскажите, как в окне "Быстрый ответ" вставить табуляцию :oops:
Записан

SlavaI
Главный специалист

ru
Offline Offline

« Ответ #7 : 19-08-2003 12:35 » 

Еще учти, что com порт может открыть только один процесс- пока он его не закроет, другой процесс открыть его не сможет.  Проверь- не открыл ли кто com порт у твоего заказчика до тебя.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #8 : 19-08-2003 13:21 » 

Не правда, SlavaI, существует OVERLAPPED режим при котором я могу пользоваться портом из нескольких процессов...
Для этого последний параметр OVERLAPPED который в примерах я ставил NULL надо ставить указатель на структуру, точно счас не скажу как заполнять, но там просто.

Это делает разделяемый ресурс...


Алексей1153,
Цитата

если честно, не ожидал такого внимания к новичку


На том стоим.


1. А на ком порту случаем мыша не висела у заказчика Улыбаюсь а то я так тоже разок глюк поймал, когда воткнул в COM порт GPS а его Winda опознала как вторую мышь типа радио мышки, и у меня по экрану мышь скакала, аки бэшенный  горный казель...

 Ага


2.
Цитата

ClearCommRWbufer();

 Что чистит эта функция - я ее не использовал Жаль

3. Код по ходу дела отличается наличием проверки HANDSHAKE у тебя. И отсутствием у меня...

По делу еще вопрос - где описан portHandle, а то я что-то не вижу, и хоть это влиять не должно, но мало ли как там все поворачивается при работе с 2-мя COM портами....

4. Увы никак - ни в быстром ответе ни в обычном.
Табуляция в IE работает на перескок между полями на сайте - используй вставки пробелов 2-4 штуки
Copy-Paste.
Записан

А птичку нашу прошу не обижать!!!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 19-08-2003 16:37 » 

:arrow: про совместное открытие я в курсе. Но в моей проге юзер сам выбирает имя порта и открывает его. Если порт не - то это сразу видно. Но порт-то открывается!
 :arrow: по недосмотру я не расписал функцию:
Цитата

//очистка буферов и облом текущих операций I/O
void CProbnikView::ClearCommRWbufer()
{
   PurgeComm(portHandle,
      PURGE_TXCLEAR|
      PURGE_RXCLEAR|
      PURGE_TXABORT|
      PURGE_RXABORT)
;}


 :arrow: portHandle - это у меня глобальная переменная. Она одна на всех, мы за це... эээ... Одновременно в проге может быть открыт только 1 порт .

  :?:  как вместо слова "Цитата:" написать другое?
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #10 : 19-08-2003 18:06 » 

Вместо quote в [] набери code в [] а вообще можешь зайти в форму обычного ответа - линк слева под быстрым и там все возможности потыкать посмотреть Улыбаюсь
Записан

А птичку нашу прошу не обижать!!!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 20-08-2003 18:26 » 

Я установил MS WinXP home edition.
Откомпилировал прогу под XP и под отладчиком обнаружилось вот шо:

 :arrow: порт открывается нормально
 :arrow: функция         bool WriteFile()       возвращает   false,     а идущая за ней
 :arrow: функция         GetLastError()        возвращает   0x57 - что это за оши?
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #12 : 20-08-2003 19:34 » 

0х57 = 87 ошибка...
Смотрим

MSDN на сайте мелкомягких http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp

87 The parameter is incorrect. ERROR_INVALID_PARAMETER

Смотрим в твой код... упс не получилось твой код только открытие порта...

Думаю у тебя траблы где та в маленьком символе не поставленном или поставленном, 98 пропускает воспринимает как данность а XP нет...

Вот в чем ИМХО может быть фишка...


Кстати - почему только вечерами заходишь тут людей вечером маловато - отдыхает народ.
Записан

А птичку нашу прошу не обижать!!!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 21-08-2003 06:49 » 

я жа работаю - лаборантом, а там сейчас типаремонт, вот и напрягли меня.
Получается включаться только вечером часов с 18:00 и до победного.
Или вот как сейчас - на обеде, но уже ухожу.

Какую часть кода выложить?

Да, ещё - при сборке под XP на кнопках проги вместо Вел.Рус. какая-то хрень.

Кстати сериализация робит, а там ведь та же WriteFile()

Н, ладно, а то начальство порвёт как тузик тряпку :twisted:  Отлично
Записан

Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #14 : 21-08-2003 09:07 » 

Понятно...

Какой код выкладывать - сложно сказать - скорее всего ошибка в том, что ты передаешь указатель вместо самой переменной или наоборот.
Выложи для начала то место где происходит эта ошибка.

Во вторых - попробуй написать отдельно программку, которая займется тем жесамым но сгенерена будет под ХР.
Просто скопируй код в другой файл в другой проект который создай в ХР именно код а не файл - дабы установки проекта сохранились и посмотри.

Отследи содержимое буферов, которые передаешь.

Насчет русского - это у тебя в настройках проекта барахлит что-то...
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #15 : 21-08-2003 09:56 » 

Цитата

Да, ещё - при сборке под XP на кнопках проги вместо Вел.Рус. какая-то хрень.


Надо или UNICODE приложение собирать, или настроить правильно шрифты для non Unicode приложений в самой операционке.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #16 : 21-08-2003 10:03 » 

Да там в VC 6 есть в ресурсах, установка языковой поддержки - поставь либо Уникод либо просто Русский.
Записан

А птичку нашу прошу не обижать!!!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 22-08-2003 13:07 » 

:arrow:
Цитата
Выложи для начала то место где происходит эта ошибка.

Код:
//посылка стартового байта и ожидение сигнала Ring от осцила.
//Принимает стартовый байт в m_oscCurrentDirByte.Если всё прошло
//нормально, возвращает true. Если вернула false, что-то не так
bool CProbnikView::SendStartByteWaitRing()
{
MSG message;
DWORD len,ModemStatus;
bool b;
BYTE bufer[]=|0x03,0,0";
BYTE helpbufer;
//составляем команду "0x03,0xNN,0xNN"
bufer[1]=bufer[2]=m_oscCurrentDirByte;
//шлём команду
//len - количество отправленных байт
len=WritePort(bufer,3);////ЗДЕСЬ КОСЯК
if (len!=3)                  ;//// len==0
|//что-то не так
MessageBox("не удалось поместить команду в буфер порта");
return false;
}
else
|//команда послана

.....
}
return true;
}

//запись в порт.
//возвращает количество записанных байт
DWORD CProbnikView::WritePort(BYTE *bufer, WORD numbytes)
{
COMSTAT portComState;
DWORD Written;
if(numbytes!=0)
{
//освобождение блокировки от бывшей ошибки (если ошибка была)
ClearCommError(portHandle, &Written, &portComState);
if(WriteFile(portHandle,bufer,numbytes,&Written,NULL))
|return Written;}
}
return 0;
}

 :arrow: насчёт
Цитата
Отследи содержимое буферов, которые передаешь
- имеется в виду буфер вывода порта(я не знаю как его просмотреть) или буфер в озу? То есть что что-то может поменять содержимое массивов процесса?

 :arrow:
Цитата
Во вторых - попробуй написать отдельно программку, которая займется тем жесамым но сгенерена будет под ХР.
Просто скопируй код в другой файл в другой проект который создай в ХР именно код а не файл - дабы установки проекта сохранились и посмотри.
пойду попробую to do
 :arrow:
в настройках VC я такого что-то не могу найти про шрифты(может, устал, ещё пороюсь).
 :arrow:
Цитата
Надо ... настроить правильно шрифты для non Unicode приложений в самой операционке.
- а это где настраивается?
« Последнее редактирование: 19-11-2007 17:06 от Алексей1153++ » Записан

Джон
Гость
« Ответ #18 : 22-08-2003 14:57 » 

Попробуй убрать FILE_FLAG_OVERLAPPED из CreateFile.

MSDN для \WriteFile
If hFile was opened with FILE_FLAG_OVERLAPPED, the lpOverlapped parameter must not be NULL. It must point to a valid OVERLAPPED structure. If hFile was opened with FILE_FLAG_OVERLAPPED and lpOverlapped is NULL, the function can incorrectly report that the write operation is complete.

На счёт UNICODa в винде - прямо помочь не смогу - винда у меня немецкая и как это по русски называется - не знаю. Попробуй там где ты языки вставляешь (добавляешь). Типа "язык используемый по умолчанию без поддержки UNICODE"
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #19 : 22-08-2003 17:50 » 

оно работает :!:  :!:  :!:  :!:  :!:  :!:
Спасибо,Джон, (попал прямо в тыблочко), ГРОМ и SlavaI !!! Отлично

Подведём итоги:  :idea:  

неважно, под какими форточками (98/XP) собрана прога, и неважно под какой она запущена, но
     :arrow: под W98 com порт работает как в асинхронном режиме(dwFlagsAndAttributes==FILE_FLAG_OVERLAPPED), так и в синхронном (dwFlagsAndAttributes==NULL). Несмотря ( Быть такого не может !) на то, что первое,как я понимаю, у меня было применено некорректно - я не заполнял структуру OVERLAPPED );
     :arrow: под WXP в синхронном всё работает, а вот асинхронный режим просто так не проходит.

если я что-то не так высказал - исправляйте, буду только благодарен Отлично

не прощаюсь, вопросы будут ещё  Жжешь
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 21-10-2004 19:59 » 

Вот, надо же - вернулся к самой первой своей теме на Шелеке Улыбаюсь

Ещё вопрос на ту же тему - всё работает, но на скорости 9600 не читается из порта - вернее читается 0 байт... (но записывается - смотрел снифером )

На скорости 115200 всё нормально, на других скоростях пока не пробовал

кто встречался с таким?
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 22-10-2004 06:18 » 

Алексей1153
Цитата

под W98 com порт работает как в асинхронном режиме [...], так и в синхронном [...]

Не так (ИМХО). Под 98 нет асинхронного режима, независимо от этого флага, т.е. порт работает всегда в синхронном режиме. Хотя в доке только что я этого не нашел, но заставить работать порт в таком режиме у меня в свое время не получилось
Записан
Серж
Гость
« Ответ #22 : 22-10-2004 06:37 » 

Алексей1153, Kivals, я сталкивался с подобным, когда программа прекрасно работавшая под WinNT c Com-портом в асинхронном режиме, совершенно перестала работать в Win98. У меня тогда не было времени разбираться, я просто перешел к синхронному режиму, но у меня не сложилось впечатления, что асинхронный прием не работает, может быть, просто нужно было изменить код.
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 22-10-2004 07:07 » 

Серж, Возможно, но у меня остаточное впечатление, что когда я разбирался в каком-то из форумов нешел именно, что не работает. Причем для Communications Resources, к которым относится СОМ порт, для обычных файлов - все Ок
Если у кого-то есть работающий кусок кода в асинхронном режиме для 98 - буду очень рад увидеть.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 22-10-2004 07:56 » 

Алексей1153, Я такое встречал. Сам нарывался. Объяснить не могу. Но подозрение скорей на железо, а не на 98. Подсаживается питание порта. Для 9600 ему нужно немножечко больше напряжения. Потому как и на 2400 было то же самое, а на 19600 заработало
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 22-10-2004 14:59 » 

Kivals,
Цитата

Не так (ИМХО).

не спорю - я только в синхронном работал Улыбаюсь

Sla, значит буду канючить у железячников повысить скорость приборов :new_shot:
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 22-10-2004 15:13 » new

Алексей1153, канючить низзя
Докажи, что виноват порт, а не твоя программа.
А скорость приборов не так уж просто и повысить. Тебе прощее изменить скорость. При повышении скорости - увеличиваются помехи. Дальше сам знаешь...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 22-10-2004 18:26 » 

Sla, неа, именно приборов - они передают с определённой скоростью, там , вроде , даже микросхема com порта стоит, хотя утверждать не стану - не разбирался я с железками, пусть железячники наши капусты себе ломают Улыбаюсь

Конечно я всё на порт валить буду  Отлично
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 23-10-2004 12:01 » 

Алексей1153, Если я правильно понял суть проблемы - тебе нужно попробовать оттестировать связь прибора с твоей программой на другом компьютере (желательно совершенно другой конфигурации).
Если стоит микросхема в приборе - то изменять скорость не сложно, но в определенных пределах.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #29 : 01-12-2004 14:17 » 

Люди! нашёл косяк! Улыбаюсь

вот в этом дело и было:

portDCB.fDsrSensitivity = TRUE;

у меня так было, я переправил на FALSE - и всё заработало - под XP и под 98  Я шокирован!

--------------------------

ЗЫ отдельное спасибо Альфу, которого я мучал последние 3 дня
Записан

Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines