Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 WriteFile kernel32.dll  [new]
DDD06
Member

Откуда: Н.Новгород
Сообщений: 43
Нужно послать данные на LPT порт
когда пользуюсь стандартной PB функцией FileWrite,
то после моих символов добавляются символы перехода на новую строку.
А функцию из kernel32.dll никак не получается настроить
FUNCTION UnsignedLong WriteFile( UnsignedLong hFile, &
REF String lpBuffer, &
UnsignedLong nNumberOfBytesToWrite, &
REF UnsignedLong lpNumberOfBytesWritten, &
long lNull ) LIBRARY "kernel32.dll" alias for "WriteFile;Ansi"


ulong ll,ll_len,ll_H
long ll_null
setnull(ll_null)
string ls,ls1
setnull(ls1)


ll_H=FileOpen ("LPT1",LineMode!,Write!,Shared!,Append!)
If ll_H > 0 Then
ls='парпарап'
ll_len=len(ls)
WriteFile(ll_H,ls,ll_len,ll,ll_null)
FileClose(ll_H)
End If
так пишет bad runtime function reference
Function Long WriteFile(Long hFile, ref string lpBuffer, long nBytesToWrite, ref Long nBytesWritten, LONG lNull) Library "Kernel32.dll"

long ll,ll_len,ll_H
long ll_null
setnull(ll_null)
string ls,ls1
setnull(ls1)


ll_H=FileOpen ("LPT1",LineMode!,Write!,Shared!,Append!)
If ll_H > 0 Then
ls='ïàðïàðàï'
ll_len=len(ls)
WriteFile(ll_H,ls,ll_len,ll,ll_null)
FileClose(ll_H)
End If
так ничего не делает
25 ноя 11, 09:07    [11656193]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
DDD06
Member

Откуда: Н.Новгород
Сообщений: 43
PowerBuilder 8.0
25 ноя 11, 09:12    [11656203]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
А на порту что висит? Принтер? Если да - попробуйте скопировать файл на устройство prn
25 ноя 11, 10:17    [11656513]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
DDD06
Member

Откуда: Н.Новгород
Сообщений: 43
На порту принтер.
Файл prn копируется.
Фишка в том что мне надо посылать управляющие последовательности,
а используя стандартную команду вместе с последовательностью посылается переход на новую строчку.
25 ноя 11, 10:55    [11656771]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
А через PrintSend то же самое сделать нельзя?
25 ноя 11, 11:36    [11657169]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Да, забыл сказать
Вы же ставите LineMode! из-за этого и добавляются символы
Можете использовать StreamMode! и символы перевода не будут добавляться
Строку в блоб и в файл - должно сработать
25 ноя 11, 11:38    [11657194]     Ответить | Цитировать Сообщить модератору
 Re: WriteFile kernel32.dll  [new]
DDD06
Member

Откуда: Н.Новгород
Сообщений: 43
да это из-за StreamMode!, както я это просмотрел.
Спасибо большое!
25 ноя 11, 12:33    [11657825]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить