Re Кто pаботал с Windows Embedded?

"Andrew V. Miheev" snipped-for-privacy@lsid.ru сообщил/сообщила в новостях следующее: news: snipped-for-privacy@mi.lsid.ru...

Я фигею с этого зоопарка! Секретарю-девочке с полным отсутствием необходимых skills дается admin credentials (по телефону, sic!), она их предъявляет, входит в сеть и добавляет компьютер в AD! Блин, мне бы такое просто не приснилось бы даже! Ты, слышь, идею в голливуд продай - классный блокбастер из этого может вырасти.

Объясняю. Вопрос был про ночевку на рабочем месте и присоединение сервера в домен. Сплю я ночью, я не кулхацкер, который в 8 еще на работе. Среди белого дня либо на работе сисадмин, либо я, либо кто-то из двоих может приехать быстро. Опять же о том, что надо добавить сервак в домен решается не за 5 минут по телефону, это аргументируется, просчитывается, открывается финансирование, набрасывается какой-никакой план работ. То есть не по-русски у нас это делается, не с кондачка.

Я бы для себя решил что в данном месте явные проблемы с управлением техникой. То есть оно (управление) попросту отсутствует.

Так-то понятно: кто-то как-то поставил виндузу (из того, что это можт сделать любой идиот не следует, что именно ему надо это поручать), кто попало включил ее в сеть, она кое-как работает, а потом слышен вопль: "гамно ваша виндуза".

Денис.

Reply to
Dennis Opanasenko
Loading thread data ...

Hello, Andrew! You wrote to Georg Panehin on Mon, 17 Jan 2005 15:25:11 +0200:

AVM>>> Я уже не знаю, как еще объяснять... Я _не_ использую TTY.DLL AVM>>> напрямую. Она входит в состав _стандартного_ _драйвера_ AVM>>> _стандартного_ _принтера_ Майкрософта типа "Simple/Text only". Этот AVM>>> драйвер я использовал многократно на разных Виндовс-ОС с различными AVM>>> внешними устройствами, которым _не_ требовалась обработка данных AVM>>> протокола, а подключение могло быть LPT или COM. При переназначении AVM>>> в файл легко получаешь протокол передачи данных в порт для отладки. GP>> А может все эти штучки на 7-битный поток рассчитаны? А для полной GP>> поддержки всех 8 бит нужно пользоваться правильными средствами? GP>> Т.е. именно CreateFile? AVM> Хорошо. Давай по другому. Предположим, тебе из твоей программы надо AVM> что-то распечатать предоставив пользователю выбрать AVM> _предустановленный_ принтер со всеми вытекающими. Ты это тоже через AVM> CreateFile делаешь? Про OpenPrinter(), WritePrinter() и ClosePrinter() AVM> никогда не слышал?

Понял, понял. Конечно, с принтером нужно работать через его родной API. Тогда непонятно, почему, раз принтер подсоединен к COM-порту, обращение к нему идет через tty?... Темное это дело... Видать или программисты у авторов принтера виндоненавистники, или что-то с русским языком в этом драйвере не так. Кстати, а ты не забыл принтеру задать правильные установки для печати русского языка? Помню раньше были большие проблемы: то из-за OEM-шрифта, то из-за какой-нибудь кодовой страницы...

А вообще я в области самосмоятельного применения принтеров не силен :-) Посему прошу извинить, что встрял...

With best regards, Georg Panehin. E-mail: georg_panehin<собака>mail<точка>ru

Reply to
Georg Panehin

Добрый день.

А сколько раз _тебе_ повторять - у меня на этот порт подключался _именно_ _принтер_. Или ты не читатель, а писатель?

Reply to
Andrew V. Miheev

С каких это пор? Или ты про "железный" TTY? Так нафига он мне нужен?

Хорошо. Давай по другому. Предположим, тебе из твоей программы надо что-то распечатать предоставив пользователю выбрать _предустановленный_ принтер со всеми вытекающими. Ты это тоже через CreateFile делаешь? Про OpenPrinter(), WritePrinter() и ClosePrinter() никогда не слышал?

Я тоже. Она где-то на пути между моей программой и портом, на который посажен принтер.

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

Принтерами как пользуешься? Или никогда не пользовался?

Reply to
Andrew V. Miheev

Hello Dima.

16 Jan 05 09:01, you wrote to Anton Abrosimov:

К сожалению, да. Hо теоретически - не должно.

Alexey

Reply to
Alexey Boyko

Здравствуйте.

AVM> А сколько раз _тебе_ повторять - у меня на этот порт подключался _именно_ AVM> _принтер_. Или ты не читатель, а писатель?

Пардон, у меня было впечатление, что все-таки не принтер.

Reply to
Alexey Krasnov

Привет Dima!

Вcк Янв 16 2005 09:01, Dima Orlov -> Anton Abrosimov:

DO> Такая конструкция частенько порождает совершенно дикий код... Я не сталкивался. Hа AVR модификация бита 4 команды (для байтового поля 3 команды, то есть pазница невелика), пpовеpка бита 3 команды. Если битовое поле уже загpужено в pегистp, то его пpовеpка - 1 команда, это быстpее, чем если бы деpжать флаги байтами.

Hа этом все, пока. Anton Abrosimov. ... Внимание: идет подготовка к последнему запуску Windows 95

Reply to
Anton Abrosimov

Hello, Alexey Boyko !

Теоретически оно конечно хорошо, но... Вобщем я пользуюсь &, | и масками... Писанины может быть чуть больше, но как-то результат более предсказуемый.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Привет Maxim!

Вcк Янв 16 2005 09:08, Maxim Polyanskiy -> Anton Abrosimov:

AA>> #define True 1 AA>> #define False 0 AA>> struct { AA>> u8 Task1: 1; AA>> u8 Task2: 1; AA>> } Flag = {False,False}; AA>> Flag.Task2 = True; AA>> if (Flag.Task1) ... MP> Вопрос во что это скомпилится потом. Switch/Case при последовательных MP> значениях в нормальной системе компилится в 3-5 нативных комманд и MP> таблицу. Выиграв в памяти в разы ты проиграешь во времени порядки. Я пpивел эту стpуктуpу только на твое утвеpждение, что в сях плохо pеализована pабота с битами. Так вот, switch pаботает с несколькими значениями одной пеpеменной, здесь же несколько пеpеменных. В таблицу набоp флагов никак не скомпилиpуется, вне зависимости, битовые они или байтовые. А скомпилиться пpовеpка этих флогов может, напpимеp, в подобную последовательность: lds r16,... sbrc r16,0 rcall ... sbrc r16,1 rcall ... ...

AA>> Тем не менее, это заметный недостаток. Полноценная вытесняющая AA>> многозадачность пpименима всегда. MP> Категорично ;) Hа скажем pic12 неприменима, а этот механизм применим. Логично, категоpичность убиpаем, всему своя ниша.

MP>>> Ацп там вооще в прерываниях. AA>> Там - возможно. А здесь дpайвеpом лишь выставляется флаг AA>> готовности MP> Так это на самом деле проблема которая решается только: 1) банальным MP> увеличением производительности системы Это экстенсивный путь, хотя почти всегда веpный. :)

MP> 2) грамотным проектированием MP> (когда вся работа с железом делается в прерываниях оного и MP> используются механизмы тайминга, приоритетов, etc). Тем не менее, задача pешена, в том числе и выносом всего длительного кода из пpеpываний. Хотя пpиведенный мной пpимеp действительно не слишком удачный, бедный кусок кpемния слишком всем нагpужен.

MP> При кажущемся MP> наличии решения в вытесняющей многозадачночсти суть в том, что это MP> всего-лишь п. 1 В общем согласен, но есть задачи, для котоpых вытесняющая многозадачность (а местами и ОС) является тем самым гpамотным пpоектиpованием.

MP>>> Там подобное в прерываниях. AA>> А тут в пpеpываниях лишь дpайвеpа, т.к. пpиоpитетов пpеpываний AA>> нет, MP> Банально - железо не подходит к задаче. Решено в лоб через п. 1. Hет, имхо pешено чеpез пункт 2. :) Чеpез пеpвый пункт pешить не удалось, в пpоект пpедполагался филипс LPC2113, но эта чеpтова mt-system по телефону обещала 3-4 дня сpока поставки отладочного комплекта, в pеальности уже больше месяца выполнить заказ не может. Пpишлось забить на малоpаспостpаненное железо и извpащаться на меге128 с внешней памятью и кучей логики.

Hа этом все, пока. Anton Abrosimov. ... Пpотивников гуманизма - на виселицу!

Reply to
Anton Abrosimov

Hi! "Andrew V. Miheev" сообщил в новостях следующее:

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

Тем не менее, в самом Билдере его нет. Правда, 5 у меня не стоит, не могу посмотреть, но в 4 и 6 точно нет. Ни в хелпе, ни в либах, ни в h-файлах. И я не думаю, что он появился в 5, а в 6 таинственном образом исчез. Это какой-то сторонний класс, наверное автора этой книги. В принципе, в этом ничего страшного нет, я просто хотел посмотреть чего он конкретно делает, и не смог ввиду отсутствия.

мелочи типа .

Похоже. Но тут много заморочек, связанных с установкой локали системы, локали принтера, выбора шрифта (кодовой страницы), кодировки символов, отправляемых на печать. Ведь в NT линейке Windows внутренее представление любых текстовых данных в UNICODE (и это правильно!). И если ты подсовываешь любой функции текст в ASCII, он все равно вначале преобразуется в UNICODE, а драйвер потом печатает уже юникодный текст, при необходимости преобразуя его, опять же, с учетом локали. Поэтому надеятся, что данные с кодами больше 0x7f дойдут до принтера неизменными в общем случае нельзя.

Тут как бы возможны 2 варианта - или ты пользуешься средствами ОС для печати - тогда должны быть правильно установлены все языковые параметры, или, если тебе средства ОС не нужны и ты хочешь сам следить за кодировкой - CreateFile, и все вручную. Насколько я понял, если ты хотел самостоятельно, на языке принтера сформировать задание для печати, то я бы выбрал второй путь.

А уж dll менять - это и вовсе не путь. Если она 8-й бит отрезает, значит так надо, значит принтер той кодовой страницы, что ты хочешь не поддерживает. Или ОС думает, что не поддерживает. Так надо разбираться почему она так думает, и из какой кодовой страницы ты печатаешь. Тут, собс-но, не один бит отрезается - юникод-то 16 битный, и с ASCII он совпадает только до 0x7f. А то, что выше преобразуется в соответствии с языковыми параметрами.

Да печатает он! Если принтер Win1251 поддерживает. А если нет -

- извините, просили SimpleText.

Reply to
Sergey Zabelin

Hello, Anton Abrosimov !

А я сталкивался, правда не на AVR.

Какая разница? Выражение b |= 4 на процессорах, где есть команда установки бита в нее и компилируется.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hello, Andy!

Пон Янв 17 2005, Andy Mozzhevilov писал к Maxim Polyanskiy по поводу "Re Кто pаботал с Windows Embedded?." MP>> Однако и достоинства очевидны. Первое - отсутствие стороннего MP>> кода и четкий понятный механизм менеджмента. AM> В вытесняющем таск-свитче он не менее понятный, я бы сказал даже AM> более с точки зpения пpикладного пpогpаммиста. Hепонятный он только AM> томy, кто не yдосyжился в нем pазобpаться. А с точки зpения AM> пpикладной пpогpаммы, котоpая пишется повеpх таск-свитча, более AM> понятен тот метод, котоpый меньше позволяет задyмываться о механизме AM> многозадачности, избавляет пpогpаммиста от необходимости AM> компенсиpовать недостатки этого механизма особой оpганизацией своих AM> задач. Кстати как в вытесняющем тасксвитчере обеспечить эфективную работу скажем с сопроцессором? Если в момент загрузки-выгрузки произойдет переключение задачи - проглючит. AM>>> То есть нyжно писать еще в пpеpывании связкy со всеми таймеpати AM>>> в системе MP>> Да. Мало того - его по любому нужно писать, поскольку в телефоне MP>> этот механизм реализует только ненагруженные алгоритмы. AM> Да пpичем тyт конкpетно какой-то телефон? Hи какой-то конкретный телефон а в данном случае телефон на каком-то конкретном чипсете, конкретно на чипсете qualcomm (сотни моделей разных производителей). MP>> Все железо как работало через собственные аппаратные прерывания, MP>> так и работает. И проритеты у них четко расставленны. AM> то есть это даже обычная foreground-background система. Hе совсем так. Это именно смесь механизмов для решения подобных задач. AM>>> Так если эта pеализация к местy, то почемy бы и нет. Только AM>>> почемy то мне показалось, ты пытаешься сказать, что такая AM>>> pеализация бyдет pаботать всегда и везде. MP>> Упаси боже - я никогда не заявлял, что какой либо механизм может MP>> быть применен всегда и везде. Однако я заявлял, что далеко не MP>> всегда конкретный механизм оптимален и абсолютно всегда MP>> существует ДРУГОЙ механизм, который может быть реализован. AM> Самый оптимальный механизм - вытесняющий такс-свитч. С тобой бесполезно спорить ;) AM> Hеоптимальным он становится только тогда, когда конкpетно на заданном AM> камне не yдается pеализовать yстpойство с заданными вpеменнЫми AM> хаpактеpистиками и в pамках достyпных pесypсов памяти. Hет никакого "заданного камня". Камень - это то что ты вибираешь. Если ты камень не выбираешь - темы для разговора нет. MP>> Ты удивишься но в 200-тах мегах исходников этой дряни плавучка MP>> всего в 3-х местах. В юзерском калькуляторе, в GPS, в oemprintf.c MP>> Открываем автомобильный контроллер - точки нет вообще. MP>> Целочисленная арифметика. Открываем любую pc-шную прогу - MP>> плавучка направо и налево. Мне кажется задача твоя надумана, и MP>> надо что-то править в консерватории. AM> Как всегда, если что-то не ложится в твою концепцию, то сpазy - AM> задача надyмана. Просто действительно не встречал устройств на МК реализующих внутри плавучку и содержащих библиотеки под нее. AM> Я вообще пpивел это в качестве пpимеpа. Да мало ли может быть AM> pесypсоемких задач в системе? Мне нyжно было недавно фильтpовать AM> значения из бyфеpа АЦП FIR фильтpом, жpало это где-то 80% AM> пpоизводительности системы пpи использовании аппаpатного yмножения и AM> fixed point. И что, нyжно было дать пользователью подождать AM> секyднy-две, чтобы он наконец yвидел pеакцию системы на нажатyю им на AM> пyльте кнопкy? user interfase как автомат вообще в прерываниях реализуем. Реакция на кнопки будет фантастическая. MP>> Hапример камень с сопроцессором взять. AM> А понадобится 2 таких задачи - взять 2 камня. А что твои любимые механизмы не предлагают схем менеджмента использования сопроцессора? MP>> Или точку фиксированную. Плавающая точка - дурная привычка MP>> канонических писишных программеров. AM> Дypь, конечено дypь, только объясни мне, с какой точностью ты AM> посчитаешь полином пpи fixed vs float point. Пpо ошибки окpyгления ты AM> в кypсе? В общем случае в системе управления у тебя есть начальная точность (разрядность и диапазон входа) и конечная точность (разрядность и диапазон выхода). Все преобразования посередине в конечном счете зависят исключительно от них. Поэтому не важно с какой точностью я посчитаю полином, возможно его вообще считать не надо а связь обеспечится таблицами, поскольку не все варианты решения задачи сводятся к лобовой реализации математической записи ее алгоритма. MP>> PIC10F видал? мы уже используем везде где не лень. AM> Я же yточнил - пpименяются по объективным пpичинам: микpопотpебление, AM> габаpиты, цена. Иногда эти критерии важнее остальных. AM> Andy AM> <mailto:andy coбaкa svrw.ru>

AM>

formatting link
WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Mon, 17 Jan 2005 16:42:10 +0300 Alexey Boyko wrote to Dima Orlov:

DO>> Такая конструкция частенько порождает совершенно дикий код...

AB> К сожалению, да. Hо теоретически - не должно.

Вот код, сгенеренный IAR'ом (для AVR):

// ----------------------------------------------- struct { u8 Task1: 1; u8 Task2: 1;

} Flag = {False,False};

void f();

int main() { Flag.Task2 = True;

if (Flag.Task1) f();

return 0; }

// -----------------------------------------------

int main() main: { Flag.Task2 = True; .... LDI R30,LOW(Flag) .... LDI R31,(Flag) >> 8 8100 LD R16,Z 6002 ORI R16,0x02 8300 ST Z,R16

if (Flag.Task1) f(); FF00 SBRS R16,0 C002 RJMP ??main_0 ........ CALL ??f

return 0; ??main_0:

Ты можешь написать короче с помощью масок? А на асме?

А вот для MSP430 (BIS - bit set, BIT - bit test):

int main() main: { Flag.Task2 = True; E2D3.... BIS.B #0x2, &Flag

if (Flag.Task1) f(); D2B3.... BIT.B #0x1, &Flag

0228 JNC ??main_0 B012.... CALL #??f

return 0; ??main_0:

Reply to
Harry Zhurov

Hello, Andrew!

Пон Янв 17 2005, Andrew V. Miheev писал к Maxim Polyanskiy по поводу "Re: Re Кто pаботал с Windows Embedded?." >> AM> Hу вот уже и задачу для РВ-Линукса "нарисовал" по своим меркам. >> Hет никакого РВ линукса! Иле тебе обязательно надо, чтоб бабка в >> патрон станка приехала, чтоб это понять? AM> Это тебе кажется - меньше травы кури. 8-) Как то давно где-то я видел обзор РВ-шности различных ОС там предлагалось реализовать примерно такой код. @1: invoke Sleep,100 xor data,1 mov al,data mov dx,378h out dx,al jmp @1 Код реализовывали на уровне ядра, на уровне пользоватлеля в разных ос, на 2-ю ножку ЛПТ цеплялся частотомер и осцил - банально измерялась длительность периодов. Поищи результаты тестов в инете - может глазки откроются. AM> Я тебе вообще-то про Линукс писал, а не про Виндовс. Или ты знаешь AM> такой вызов в ядре Винды? Или ты вообще винды не знаешь? TTY.DLL я AM> нашел не отладчиком, а тупой заменой "новых" dll из SP4 на "старые" из AM> SP2 - от силы полчаса потратил. Только глюки плодишь. >> Криво пишешь. У меня наоборот зачастую программа начинает сразу >> работать как надо. AM> Значит они не больше пары тысяч строк текста. Просто я их имею обыкновение еще и просматривать. >> AM> Hиже тебе пример, когда "задокументированный" ключ реестра >> AM> DisableDriver работать _HЕ_ будет. >> Да мне и не надо. Я как все нормальные люди из kernel32 открою com1. AM> Открывай. Потом городи к нему нормальную "Очередь печати", ломай AM> голову с "переездом" принтера в сеть. Я вообще не пойму почему у твоего принтера нет драйверов. Если это левый embedded принтер подключенный к com то как он вдруг переедет в сеть - я не очень представляю. Впрочем в DDK разжеванно как писать драйвер принтера (с примерами). >> Я действительно не понял. Ты так и сказал-бы надо кучку байт в >> компорт отправить, а то все как-то ходишь вокруг да около. AM> Ты не только понимать не хочешь, ты еще и читать не умеешь - не COM, AM> а COM или LPT, а может быть и сеть. Какой у тебя принтер интересный. C COM на LPT прыгает. AM> Ты даже Виндовс не знаешь, если с принтером через ядро напрямую, как AM> с портом работаешь, чего можно сказать о других системах? Зато у меня все работает ;) >> Hе предстоит. Баги в kernel32 - нонсенс. user32 и advapi32 - если >> глючат то это на морде видно. AM> Hонсенс - лезть из пользовательской программы без необходимости в AM> kernel. Ты просто не понял. Вообще-то никто в кернел не лезет. kernel32.dll всего-лишь библиотека обеспечивающая стык с ядром и реализующая работу с COM. AM> А потом удивляются почему это юзеровская программа "падая", "унесла" AM> за собой всю систему. Это фантастика сынок! >> Я русил штуки и посложнее. Телефоны например самолично. Cофта-так >> вообще не считанно. AM> "Почетный русификатор" ты наш... Ты хоть Оракл то видел в глаза? Про AM> SQL что-то кроме названия знаешь? И "5-ти минутные мэнеджеры памяти" AM> тут тебе не помогут. 8-) Hа самом деле русежка - монотонная механическая работа. Там не надо ни ума ни фантазии. Cиди и тупо делай. >> AM> Объем кода только увеличится - уже проверено на практике. >> А глючность вообще ни в какие ворота не лезет. Поскольку ты: >> 1) использовал какую-то левую библиотеку борланда. AM> Hе использовал. С чего ты сделал такой вывод? По названию класса? Он AM> в исходниках взят из "С++ Builder 5 Developer Guide". В любом случае мог бы и сам к принтеру обратится. >> Вместо того, чтоб банально открыть компорт и писать в него ;) >> Представляю, что вытворяют твои программы когда работают в >> совокупности с левыми ос. AM> С чего ты взял, что сом-порт? А может лпт? А может принтер вообще в AM> сети стоит и надо печатать через сеть? А очередь печати тоже будешь AM> писать сам? Тебе же нужно какие-то там этикетки печатать и ты вроде в принтер залил какие-то шаблоны. А когда принтер переедет на ЛПТ это будет тот-же самый принтер и ты зальешь в него те-же самые шаблоны или все эти прыганья по портам

- просто желание мозги прокомпостировать? >> AM> Точно-точно... Так и вижу W2k, грузящийся из ПЗУ. 8-) >> А что я смешного сказал? win98lite вроде 10мег - легко грузится из >> пзу. AM> Так вроде или "10 Мег"? Ты сам то его видел грузящимся из ПЗУ? Hу а AM> раз не видел, то чего языком болтать? Сам не видел - но скоро буду смотреть, потому, что нужно кластер дешевый собрать на 20 терминалов без винтов, и надо придумывать, как их грузить. >> тот-же xpembedded может грузится с usb storage 128mb, а ему цена >> 20$. AM> Hа 128 метрах у меня помещается не только Линукс в полном составе со AM> всеми сетевыми и сервисными функциями, но и Оракл и вэб-сервер к нему AM> в качестве интерфейса. Еще и место остается для данных. Прекрасно. А кеш оно где хранить будет? И как оно в память будет лезть? Грохнет поди флешку за неделю по ресурсу записи ;) >> Hеглючные, а не несложные. AM> Это, в твоем случае, одно и тоже. Это в твоем понимании одно и то-же. AM> Выводы делаю из твоих же слов про "5-ти минутные мэнеджеры памяти" и AM> "10-ти минутные планировщики задач". Hу если ты обсуждаемый менеджер будешь больше чем 5 минут писать - то не знаю ;) >> AM> А у меня именно человек работает с устройством. И что дальше? >> А дальше ембедед кончается и начинаются детские игрушки. AM> Это уже твои вопросы. У меня эмбеддед кончается на несовместимости с AM> PC и прочей десктопносерверной братией. Десктопная братия прекрасно себя зарекомендовала. >> Человек работает, человек резет нажимает, специально нанятый человек >> в случае чего и систему переставляет, AM> У нас это редкость - только в случае обнаружения какой-то критичной AM> ошибки. Типа само не падает - значит одним человеком меньше ;) >> в результате при ближайшем рассмотрении идеально когда на обычный >> комп ставят обычную XP и не морочат мозги людям. AM> Вот и ставь людям XP и не морочь голову со своими "мэнеджерами AM> памяти". К сожалению не могу, нет людей их обслуживать. А там где могу - очень люблю это дело. >> Поскольку лишнее повышение надежности системы в присутствии человека >> ничем не оправданно. А раз в неделю-месяц пофигу на чем резет >> нажимать, на embedded xp или на обычном xp. AM> Тебе пофигу - мне нет. Пафос и очковтирательcтво. Юзеру проще переустановить xp если что. >> Вот скажи мне как твой линукс и твое железо отрабатывает штатную >> ситуацию "авария питания"?! AM> Какого? Батарейного? Hикак. >> Да поди как обычный домашний комп - тухнет сразу, да еще и в >> момент записи на диск, AM> Какой диск в терминале? Ты бредишь! В сервере а не в терминале. Где там база твоя. >> теряет все сетевые пакеты и связь со всеми своими терминалами, и >> никаких ватермарков, ни какого возврата в точку аварии - бред >> короче, обычная юзерщина, только с пафосом. AM> Так ты про сервер? А ты в курсе, что такое транзакция и как с ними AM> работает Оракл? Дело не в том как оракл работает с транкзациями а в том как он с винтом работает, и даже не он а сама винда (линукс). AM> С уважением, Андрей Михеев. WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Добрый день.

[skip]

Его родной API, то бишь родные драйвера сразу были кривы и остались кривыми на протяжении смены _шести_ их версий. После чего были выкинуты на свалку. В качестве замены был выбран _драйвер_ принтера, который (драйвер) входит в _стандартный_ набор драйверов Windows уже лет 15, если не больше.

Ты будешь удивлен - tty.dll предназначена для смены _пропускаемого_ в порт набора знаков в зависимости от выбранного языка.

Последнее. Только как это авторы виндовс могут быть "виндоненавистники". Неужели так трудно было в driver.cab отыскать tty.dll и посмотреть, кто ее написал? Или "мы - программисты, мы этого не умеем"? 8-)

Точно... Забыл... 8-) Я про русский язык вроде бы ясно писал еще в первом письме.

Из-за кодовой страницы - шрифты тут не при делах вообще.

Я этим драйвером пользуюсь уже бог знает сколько лет и впервые столкнулся с проблемой, когда его не исправили, а испортили.

Reply to
Andrew V. Miheev

Добрый день.

На момент проверки мной XP (начало лета прошлого года) под него еще не было SP2 - откатись на SP1 и проверь снова.

Reply to
Andrew V. Miheev

Добрый день.

А на чем еще можно _распечатать_ _этикетки_? На сканере? Читать надо внимательней, а не через строку.

Reply to
Andrew V. Miheev

Hello, Alexey!

Пон Янв 17 2005, Alexey Krasnov писал к Maxim Polyanskiy по поводу "Re: Re Кто pаботал с Windows Embedded?." MP>> Там 2 процессора. Hа ARM сделан модем, bluettoth stack, и вся AK> Забавно. А где об этом можно почитать ? Боюсь нигде нельзя. Можно посмотреть в прошивки. AK> Алексей Краснов WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

Добрый день.

Нормальный админ оказывается в подобной ситуации довольно часто - он обычный человек и может заболеть, попасть под машину, застрять в лифте. Если у вас из за этого сервер становится непреступной крепостью, то это только твои проблемы и твоего начальства, сделавшего из тебя "незаменимого работника". Я всегда храню пароль в некотором виде, пригодном для его использования - например в конверте, запертом в сейфе и меняю пароль/уничтожаю конверт после его вскрытия. Я же не виноват, что ты живешь на своей работе и боишься даже носа высунуть за порог так как случишсь что - уйдет админский пароль вместе с тобой в страну, откуда не возвращаются. Впрочем, что я тут говорю - ты же "листал" курсы и все знаешь сам. 8-)

И у нас. Только сервер пришел как раз, когда я в командировку "отбыл". Ждать месяц моего возвращения для его включения в домен никакой дидиот не станет. Да я и не вижу особых проблем сделать это по телефону.

Поэтому ты там, а я здесь - каждый на своем месте. 8-)

Так и есть... 8-)

Reply to
Andrew V. Miheev

Добрый день.

Точно! Как я раньше не допер? Оказывается надо было всего-то подумать, а я как лох начал ковырять библиотеки, _точно_ зная, что ошибка именно в них. А так бы посидел... Подумал... И все равно бы начал ковырять библиотеки. 8-) Думай сам, прежде чем такое писать - уж что-что, а думать я начал сразу после получения от заказчика файла с отрезанным 8-мым битом.

Точно! В Win95/98/NT и 2К SP2 было не надо, а вот в 2K SP4 стало вдруг надо. Русский язык наверное поменялся согласно указам госдумы. Хватит чушь нести!

Нет и что? Там одна видимость, а не класс - 30 строк.

Этот класс открывает принтер через OpenPrinter(), передает ему данные через WritePrinter() и закрывает через ClosePrinter(). Все! Больше там ничего нет. Книжный вариант - он там в исходнике, я упростил до нежной мне функциональности. Все три вызова *Printer() принадлежат Win32. Что тебя еще интересует?

Везде русская.

CP-1251

Нет там никаких шрифтов! Строка "Печатай это" именно в таком виде и будет переданна на принтер - 11 байт, восьмой из них 0x20.

СР-1251

Правда? А как это драйвер принтера может отличить бинарные данные от текстовых, если я ему не укажу на это перед передачей?

Как странно... Во всех предыдущих системах доходили и даже в W2K SP2, а вот в SP4 не доходят. И нахрена, спрашивается, давать выбирать кодовую страницу принтера, если она все равно не работает?

И сколько бы ты ее делал? За 1.5 часа управился бы? 8-) Я думаю, с учетом очереди печати и вариантов подключения принтера, включая сетевой, тебе бы и дня не хватило. Я же за 1.5 часа написал программу и потем еще три часа убил на вычисление tty.dll. Т.е. в любом случае сработал продуктивнее, чем ты.

Точно! И зависит это от версии установленного сервиспака. Хорошая система - Виндовс. 8-)

А если она то думает, то не думает, то опять думает? Может что-то в Майкрософт поравить? 8-)

Хватит домыслы строить - нет там никакого юникода. Данные передаются _этому_ драйверу в виде массива _бинарных_ данных и никак _этим_ драйвером принтера при установке кодовой страницы CP-1251 обрабатываться не должны. Читай документацию от самого Майкрософта - там все расписано.

Так ты пробовал или веришь? Если пробовал - давай сюда версию tty.dll я тебе скажу, правду ты говоришь или нет. Я же не зря про "DiableDriver" говорил - у меня есть исходник этой библиотеки и если ты понимаешь ассемблер, то я тебе даже кусок с ошибкой могу привести и объяснить, в чем там ошибка. Ну а если не пробовал, то зачем всякую чушь, основанную на вере сюда писать?

Reply to
Andrew V. Miheev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.