jorikdima 0 27 декабря, 2016 Опубликовано 27 декабря, 2016 · Жалоба Ну константы как-то не предполагают знак У вас не типизированные константы, а литералы. Предполагают. Но я не говорю что проблема в этом. Странно видеть в 2016 году WinAPI. милиард взяких либ для работы с портами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 27 декабря, 2016 Опубликовано 27 декабря, 2016 · Жалоба Странно видеть в 2016 году WinAPI. милиард взяких либ для работы с портами. А Вам в голову не пришло, что сам факт существования "милиард взяких либ для работы с портами" свидетельствует только об их бесполезности. Была бы польза - была бы одна волшебная "либа". А пока есть только одна такая "либа" - WinAPI называется. Остальное графоманские надстройки над API. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 28 декабря, 2016 Опубликовано 28 декабря, 2016 · Жалоба А Вам в голову не пришло, что сам факт существования "милиард взяких либ для работы с портами" свидетельствует только об их бесполезности. Была бы польза - была бы одна волшебная "либа". А пока есть только одна такая "либа" - WinAPI называется. Остальное графоманские надстройки над API. Каждый волен находить свой баланс между скоростью разработки и получением удовольствия от ручного труда. Никакой бесполезности в либах нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 28 декабря, 2016 Опубликовано 28 декабря, 2016 · Жалоба Есть такая мысль, что (GENERIC_READ + GENERIC_WRITE) в вашем случае оказывается не равно (GENERIC_READ | GENERIC_WRITE). мысль одобрямс. Если макро содержит только один взведенный бит, то плюс == OR. (нельзя допускать ошибок когда в списке на + ошибочно 2 раза указана одна и таже маска) А вот если макро-маски "сборные" - то от плюсования лучше отказаться. Раньше никогда не сталкивался с необходимостью осваивать WinAPI в части работы с COM-портами, . . . . Успешно открываю порт . . . . handle = kernel32.CreateFileA("\\\\.\\COM" .. comid, GENERIC_READ+GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0) . . . . end[/code] . . . . Не понял, какой комилятор и какой версии используете. И какой "target" компиляции (оконное, консольное итп) Открытие порта в консольном Win32 приложении на чтение и запись hport = CreateFile( /*(LPCWSTR)*/ cfg_com1, GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); cfg_com1 - символьный массив, содержащий строку с именем порта "COM1" 1. Обратите внимание на кодировку символов. Используйте ASCII однобайтные. Для начала поотключайте в опциях проекта всякие юникоды и иже с ними. из #include уберите <tchar.h> 2. Как Вам советовали - убрать (пока) OVERLAPPED 3. Посмотрите исходники множества библиотек классов для работы с COM-портами. Если класс "раздутый" - даже не смотрите. исходник класса должен быть порядка 3 - 10 страниц исходника (из расчета 65 строк). Если у класса раздутая "родсловная" - найух его. Родственные связи должны быть только на вызовы Win32API :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vazz 0 12 января, 2017 Опубликовано 12 января, 2017 · Жалоба спасибо большое за ответы! дело оказалось действительно в знаке констант, это дебильная особенность той среды разработки, в которой пишу. В общем удается добиться желаемого при передаче констант с отрицательным знаком, создал такую вот константу GENERIC_READWRITE = -1073741824 и передаю ее в функцию. Конечно это не стандартно и попахивает колхозом, но работает, в дальнейшем подумаю как это все привести в нормальный вид. Зато теперь я с портами на "ты", ура, спасибо всем большое! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 12 января, 2017 Опубликовано 12 января, 2017 · Жалоба Никакой бесполезности в либах нет. Да сплошная польза. По этой часть любителей библиотек ищет библиотеки, а вторая часть почему они не работают, как мечтается. Ну конечно есть еще писатели библиотек, которые слегка в чем то разобравшись дарят миру плоды творчества. Причем надо понимать, что данные конкретные библиотеки есть просто обертки над действительно ПРОДУМАННЫМ системным интерфейсом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 13 января, 2017 Опубликовано 13 января, 2017 · Жалоба в дальнейшем подумаю как это все привести в нормальный вид. 0x80000000u Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться