Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.01.2010, 21:45   #1
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Адрес: с Новая Деревня (Ставропольского края)
Сообщений: 224
Репутация: 21
Восклицание работа с портом ввода вывода

как описать порт LPT или COM для вывода и ввода переменной описаной как:
unsigned char A = 0x2d;
данный код должен исполняться под Win 32. Написанный под C++ Bulder. у меня есть код но немогу с ним разобраться:

char bufer = 0xfd;//это будем передавать
char buffer[10];
DWORD Writ;
HANDLE h=CreateFile("LPT1",GENERIC_READ|GE NERIC_WRITE,0,NULL, OPEN_EXISTING,0, NULL );
WriteFile(h, &buffer, strlen(buffer), &Writ, NULL);
CloseHandle(h);
Assemblerru вне форума   Ответить с цитированием
Старый 30.01.2010, 20:21   #2
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Адрес: с Новая Деревня (Ставропольского края)
Сообщений: 224
Репутация: 21
Лампочка или помогите разобраться с этим

HANDLE h = CreateFile("\\\\.\\LPT1", GENERIC_READ|GENERIC_WRITE, 0,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
DCB dcb;
GetCommState(m_hFile, &dcb);

COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultip lier = 0;
CommTimeOuts.ReadTotalTimeoutConsta nt = 0;
CommTimeOuts.WriteTotalTimeoutMulti plier = 0;
CommTimeOuts.WriteTotalTimeoutConst ant = 1000;

SetCommTimeouts(m_hFile, &CommTimeOuts);


dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.BaudRate = baud;

SetCommState(m_hFile, &dcb);

char bufer = 0xfd;
DWORD lpdwBytesWrittens = 0;
WriteFile(h, &bufer, sizeof(char), &lpdwBytesWrittens, NULL);
Assemblerru вне форума   Ответить с цитированием
Старый 31.01.2010, 21:20   #3
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Адрес: с Новая Деревня (Ставропольского края)
Сообщений: 224
Репутация: 21
Восклицание всетаки опять LPT порт

получил несколько ответов по работе с портом но не могу разобраться помогите пожалуйста разобраться.
HANDLE h = CreateFile("\\\\.\\LPT1", GENERIC_READ|GENERIC_WRITE, 0,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
DCB dcb;
GetCommState(m_hFile, &dcb);

COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultip lier = 0;
CommTimeOuts.ReadTotalTimeoutConsta nt = 0;
CommTimeOuts.WriteTotalTimeoutMulti plier = 0;
CommTimeOuts.WriteTotalTimeoutConst ant = 1000;

SetCommTimeouts(m_hFile, &CommTimeOuts);


dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.BaudRate = baud;

SetCommState(m_hFile, &dcb);

char bufer = 0xfd;
DWORD lpdwBytesWrittens = 0;
WriteFile(h, &bufer, sizeof(char), &lpdwBytesWrittens, NULL);
Assemblerru вне форума   Ответить с цитированием
Старый 31.01.2010, 21:52   #4
raxp
Профессионал
 
Регистрация: 29.09.2009
Сообщений: 9,742
Репутация: 3006
По умолчанию

1- зачем плодите одну и ту же тему?
2- смешали с lpt настройку com порта
Код:
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
...

char bufs;
bufs = 0xfd; // то чего посылаем

HANDLE h = CreateFile("\\\\.\\lpt1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

if (h!=INVALID_HANDLE_VALUE)
{
WriteFile(h, &bufs, 1, NULL); }
CloseHandle(h);
на всяк случай предупреждаю, принтер может мешать, если есть.
__________________
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума   Ответить с цитированием
Старый 01.02.2010, 20:42   #5
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Адрес: с Новая Деревня (Ставропольского края)
Сообщений: 224
Репутация: 21
Счастье благодарю всех кто помог

извените за повторение темы, не как не мог разобраться с этим протом. Огромное спасибо за подсказку в этом. теперь мне понятен и первый код.
Assemblerru вне форума   Ответить с цитированием
Старый 25.04.2012, 01:33   #6
Василий2
Новичок
 
Регистрация: 25.04.2012
Сообщений: 1
Репутация: 10
По умолчанию

Пожалуйста подскажите, имеется такой код:

Код:
#include <windows.h>
#include <stdio.h>
#include <conio.h>

void main()
{
unsigned char   chr;
HANDLE           Lpt1Port; 
DWORD           l1;
OVERLAPPED    l2;
int                 cod_error;
bool               res; 

Lpt1Port=CreateFile("\\\\.\\lpt1",GENERIC_WRITE,0,	NULL,OPEN_EXISTING,0,NULL);
if(Lpt1Port!=INVALID_HANDLE_VALUE) {
	printf("Open LPT1 - sucess\n");
	chr=129;
	res=WriteFile(Lpt1Port, &chr, 1, &l1, &l2);
	printf("out number = %u \n",chr);
	if(res==true) printf("good record data\n");
	else {
		cod_error=GetLastError();
		printf("no good record data, error =%d \n",cod_error);
		getch();
		}
	CloseHandle(Lpt1Port);
	printf("port LPT1 - close\n");
	getch();
	}
else {
	printf("Open LPT1 - error\n");
	getch();	
	}
}
при запуске программы функция WriteFile() возвращает false, и ошибку №6 (Неверный дескриптор) что не так ? Буду очень признателен за хоть какие нибудь подсказки
Василий2 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с протами ввода вывода Assemblerru Win Api 4 05.03.2010 21:53
Ошибки в функциях ввода-вывода (Си) spirit_trapper Помощь студентам 2 28.12.2009 13:54
Перенаправление ввода/вывода dudeboy Win Api 0 16.11.2009 12:36
система ввода вывода StudentPolitech Общие вопросы C/C++ 3 02.04.2009 22:22


07:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.