Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2010, 20:45   #1
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
Восклицание работа с портом ввода вывода

как описать порт 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, 19:21   #2
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
Лампочка или помогите разобраться с этим

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, 20:20   #3
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
Восклицание всетаки опять 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, 20:52   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

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, 19:42   #5
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
Счастье благодарю всех кто помог

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

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

Код:
#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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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