Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 01.04.06 00:24. Заголовок: Проблемы с xHarbour-программой
Ура-а! EXEшник получился! Однако сразу обнаружилось несколько проблем: 1. Как только я пытаюсь использовать функцию из сторонней библиотеки, она тут же вылезает ошибкой при линковке, например: Error: Unresolved external '_HB_FUN_OL_ISNT' referenced from F:\XHARBOUR\MAIN\SETUP.OBJ хотя библиотека OSLIB.LIB, содержащая функцию OL_ISNT(), в линковке указана... Что с этим делать? 2. На экране появился курсор мыши. Но поскольку нигде в программе она у меня пока не используется, как его можно убрать? А то ведь юзвери однозначно будут пытаться щёлкать мышью и возмущаться из-за отсутствия реакции! 3. В оконном режиме попытался закрыть окно программы щелчком мыши на кресте (ну как обычно закрываются все Windows-программы), и получил фигвам: "Windows не может автоматически завершить...". Так что, Harbour-программа - это не совсем Windows-программа? Или всё-таки подобное закрытие программы возможно?
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 01.04.06 10:08. Заголовок: Re:
1. Наверно забыл поставить "+" при сборке проверь : ...................................... echo cw32.lib + >> b32.bc echo import32.lib + >> b32.bc echo oslib.lib >> b32.bc 2. В свойствах ярлыка , в разное , использование мыши -> галочку "исключительно" 3. В свойствах ярлыка , в разное , завершение работы -> снять галочку "предупреждение" И вообще проверь все параметры ярлыка . Harbour-программа - это исключительно Windows-программа , если собрана под Windows .
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 02.04.06 00:43. Заголовок: Сергею Р
1. В том-то и дело, что не забыл! Я же писал: "хотя библиотека OSLIB.LIB, содержащая функцию OL_ISNT(), в линковке указана... " Всё именно так: ........ echo import32.lib + >> b32.bc echo oslib.lib >> b32.bc Мне даже кажется, что я знаю, в чём проблема, но не знаю, как её решить: в библиотеке OSLIB.LIB действительно НЕТ функции _HB_FUN_OL_ISNT(), там только функция OL_ISNT(). А вот как xHarbourу указать, что это внешняя функция, чтобы он её под себя не переделывал - это вопрос... 2. 'В свойствах ярлыка , в разное , использование мыши -> галочку "исключительно"' Начать с того, что в свойствах ярлыка, который у меня создался, нет вкладки "Разное" - только "Ярлык" и "Общие"... А если в оконном режиме во время выполнения, то мышь исчезает вообще и исчезает сам смысл оконного режима - ни другую программу не запустить, ни уже запущенную активизировать... И кстати, если переключиться в полноэкранный режим, а потом обратно в оконный - мышь снова появляется! Я-то хотел, чтобы у меня мыши не было именно в полноэкранном режиме! 3. 'В свойствах ярлыка , в разное , завершение работы -> снять галочку "предупреждение"' Опять-таки, в ярлыке вкладки "Разное" нет, а в процессе выполнения юзверей заставлять это делать только для того, чтобы программу можно было мышью закрыть - верх неприличия...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 02.04.06 10:20. Заголовок: Re:
1. Нет , скорее всего дело не в этом . В борландовской библиотеке import32.lib тоже нет _HB_FUN_ , но она замечательно компануется . 2.и3. Создай файл pif , в нем все пропишишь (посмотри как сделано в FAR , тоже консольный режим) . Какой ты капризный , то хочу мышь , то не хочу . Поставь в программе SET EVENTMASK TO INKEY_ALL программа станет откликаться на мышку и никто не станет возмущаться из-за отсутствия реакции .
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 02.04.06 21:22. Заголовок: Re:
1. Ни одну клипперовскую библиотеку нельзя простой линковкой прицепить к харбору. Во-первых этоо 16-битные библиотеки, во 2-х должно быть выполнено соглашение харбора о именах и передачи параметров Для этого сырцы должны быть перекомпилированы oslib наверное написана на asm, так что ее надо вообще переписать для использования Что касается OL_ISNT(), то в харборе есть аналогичная функция OS_ISWINNT()
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.04.06 06:57. Заголовок: Re: Pasha
Спасибо за подсказку. А где лежит описание функций xHarbourа? Иначе я буду стопориться с каждой функцией, например, OL_95AppTitle(), которая у меня выводила к оконном режиме в титулярной строке окна название программы...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.04.06 07:10. Заголовок: Re:
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.04.06 00:47. Заголовок: Re: Dima
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.04.06 00:52. Заголовок: Сергею Р
" SET EVENTMASK TO INKEY_ALL " Ага, и теперь у меня по щелчку мышой на нужном пункте меню нужное мне окошко конечно открывается, но вместо того чтобы ждать нажатия любой клавиши сразу же закрывается :-)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.04.06 01:05. Заголовок: Dima
И где взять всяки-разны библиотеки для xHarboura, например LIBNF.LIB, в которой нужная мне функция FT_GETE() ? В списке функций на www.xharbour.com/xhdn/ эта функция указана, а толку-то?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.04.06 09:13. Заголовок: Re:
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 01:00. Заголовок: Re:
Сергей Р пишет: Что-то не выходит у меня ничего оттуда скачать. За каждый файл 1 бакс требують, супостаты! Нет в жизни счастья! и не предвидится... А попроще есть вариант?
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 01:16. Заголовок: Re:
Лукашевский пишет: цитата: | Что-то не выходит у меня ничего оттуда скачать. За каждый файл 1 бакс требують, супостаты! |
| Ты слишком торопишься . Там надо подождать секунд 15 (на странице счетчик увидишь), если будут всплывать окна , закрывать их . По истечении 15 секунд , может окрыться окно (в низу будет ссылка вернуться в filefactory нажми или подожди немного , потом откроется опять страница загрузки и будет счетчик на 30 секунд , подожди (если окна будут всплывать - закрывай ) . Истекут 30 секунд появиться ссылка на файл , тогда скачивай чем-нибудь . Лучше окрыть несколько окон для загрузки , чтобы качать по нескольку файлов ,например по 3 . Если после качания filefactory не будет давать ссылки , то два варианта , либо час подождать или удалить cookie от filefactory или все , если они тебе не нужны .
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 09:10. Заголовок: Re:
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 09:27. Заголовок: Re:
Сергей Р Боюсь с рапидой он тож не разберется ;)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 09:41. Заголовок: Re:
Как качать с Rapidshare.de Если увидите ссылку Download/Скачать, ведущую на адрес вида http://rapidshare.de/*****/*****.html, открывайте её БРАУЗЕРОМ (не качалкой)! Внизу открывшейся страницы нажимайте кнопку ''FREE''. После 20-40 секунд появится картинка с тремя символами. Вводим эти символы в поле и кликаем Start Download. Дальше всё просто: качаем браузером. Качалки не поддерживаются. Если качалка постоянно перехватывает файл, просто нажимаем на ссылку правой кнопкой мыши и выбираем опцию ''Сохранить объект как...'' (название опции зависит от браузера). ВНИМАНИЕ: Закачка происходит в 1 поток! Докачки НЕТ! (при обрыве закачки Вы потеряете файл). Лимит скачивания - 20-30 МБ в час. Поэтому, если Вы не увидите ссылку на файл, подождите 1 час и попробуйте снова. Если Вам надо удалить Cookies, то в Свойствах обозревателя (меню Сервис) нажмите ''Удалить Cookie''. Способ удаления зависит от браузера. Видеоинструкция
|
|
|
|
| модератор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 09:48. Заголовок: Re:
Dima пишет: Скачал с помощью Universal Share Downloader v1.33 (http://www.dimonius.ru) с Рапиды безо всяких проблем (размер файла - 6,42 МБ). Спасибо за сборку
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 05.04.06 09:49. Заголовок: Re:
Dima пишет: цитата: | Боюсь с рапидой он тож не разберется ;) |
| Значит не судьба . 2Лукашевский Ну если не получиться , скачивай 060 сырцы (но там сортировка не работает , а может и еще чего-нибудь ) http://prdownloads.sourceforge.net/xharbour/xharbour-0.99.60.src.contrib.zip?download http://prdownloads.sourceforge.net/xharbour/xharbour-0.99.60.src.zip?download Только не забудь читать FAQ Павла , для полной сборки запускай makallbc.bat, который собирает и сам харбор и все библиотеки contrib . Если собираешь под XP , то не пиши путь к bison и set BISON_SIMPLE=<path>bison.simple не в autoexec.bat и не в autoexec.nt , а прописывай в Мой компьютер -> Панель управления -> Система -> Дополнительно -> Переменные среды в системные переменные или переменные среды пользователя . Не забывай , что писать туда и туда не надо , а то у тебя сдублируется (например путь) Ух , устал .
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.04.06 01:30. Заголовок: Re:
Сергей Р пишет: цитата: | Dima пишет: цитата: Боюсь с рапидой он тож не разберется ;) Значит не судьба . |
| Я, конечно, может, для каких-то вещей и староват (35, седина в шевелюре и всё такое), но не настолько же С рапидой разобрался на "ура!", и без всяких качалок, одним стандартным IE6 Сергей Р пишет: цитата: | Только не забудь читать FAQ Павла , для полной сборки запускай makallbc.bat, который собирает и сам харбор и все библиотеки contrib . Если собираешь под XP , то не пиши путь к bison и set BISON_SIMPLE=<path>bison.simple |
| Нет, у меня не Хрюша, а Линолеум... А FAQ Павла свежий где-нить имеется? А то у меня вариант от февраля 2005...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.04.06 11:07. Заголовок: Re:
Лукашевский пишет: цитата: | Я, конечно, может, для каких-то вещей и староват (35, седина в шевелюре и всё такое), но не настолько же |
| Молод ешо , что уж тогда говорить обо мне (скоро 45 стукнет) , надо почаще качать с файловых серверов пиратскую продукцию .
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.04.06 15:41. Заголовок: Re:
Сергей Р пишет: цитата: | Молод ешо , что уж тогда говорить обо мне (скоро 45 стукнет) |
| Да мы ровесники почти ;)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.04.06 00:47. Заголовок: Re:
Господа, Вы излишне увлеклись подсчётом прожитых лет Повторяю вопрос: А FAQ Павла свежий где-нить имеется? А то у меня вариант от февраля 2005... И парочка новых: 1. Как у xHarbour-программы с защитой от взлома? В Clipperе я юзал "blinker executable compress, а здесь? 2. Можно ли в тексте исходной клипперной проги использовать одну из стандартных C-фукнций и если да, то как это оформить?
|
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.04.06 08:27. Заголовок: Re:
FAQ Нет 1. Пока нет, хотя это Рон планировал добавить - защиту на уровне пи-кода Упаковать exe можно утилитой upx Еще можно шифровать в exe символьные строки: #pragma TEXTHIDDEN(1) ? "This is a hidden text" #pragma TEXTHIDDEN(0) 2. Да. Прямо в теле функции: prg-функция ... uRet := HB_INLINE(par1, par2,...) { обычная С-функция: обьявление переменных, параметры принимаются обычным образом: hb_parnXX(n) возврат результата: hb_retXXX() } продолжение prg-функции
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.04.06 09:32. Заголовок: Re:
Лукашевский пишет: цитата: | 2. Можно ли в тексте исходной клипперной проги использовать одну из стандартных C-фукнций и если да, то как это оформить? |
| Типа так : #define ....... #include ...... Procedure main() .............. Ci1() .............. Ci2() .............. Return Nil *************************** #pragma BEGINDUMP #define ....... #include ...... HB_FUNC ( Ci1 ) { .................... } HB_FUNC ( Ci2 ) { .................... } #pragma ENDDUMP
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.04.06 15:49. Заголовок: Re:
Лукашевский [q]не зарегистрирован[/q] Зарегестрируйся пожалуйста или будешь только читать 1 неделю !!!
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.04.06 02:43. Заголовок: Re:
Вроде зарегистрировался... правда не понял, зачем - мне и так было хорошо Pasha пишет: цитата: | 1. ...Еще можно шифровать в exe символьные строки: |
| Не, мне чтобы никто не смог дизассемблировать и поудалять встроенные функции защиты от копирования Начал смотреть на работу своей xHarbour-программы и обнаружил, что не выводятся @...say При том что @...prompt - без вопросов. Попробовал прилинковать вместо gtwin.lib - gtwvt.lib и указать в программе WVT_SETCODEPAGE(255) - как написано в FAQ - и на линковке получаю: Error: Unresolved external '_HB_FUN_WVT_SETCODEPAGE' referenced from F:\XHARBOUR\INSTALL\MAIN.OBJ
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 09.04.06 15:01. Заголовок: Re:
Декомпилятора пи-кода харбор пока не существует, хотя когда-нибудь его конечно напишут Say должен работать, покажи свой пример Надо еще подключить библиотеку wvtgui.lib. В прошлом году терминал gtwvt был разделен на 2 библиотеки На будущее - в таких ситуациях, когда не подлинковываются какие-нибудь функции, надо просто запустить поиск текста (WVT_SETCODEPAGE) в папке LIB и сразу будет видно, в какой библиотеке эта функция находится
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.04.06 00:46. Заголовок: Re: Pasha
Pasha пишет: цитата: | Декомпилятора пи-кода харбор пока не существует, |
| Причем тут код харбора? В результате-то получается обычная сишная программа, которая, наверное, опытным человеком ломается "на ура"... Может быть, конечно, что я чего-нибудь не понимаю... После добавления в линковку wvtgui.lib линковка пошла, но вот результат... Основное окно программы то ли смещено, то ли обрублено, части экрана с одним из пунктов меню не видно... а @...say как не работал, так и не работает. Выжимка из моего модуля: #include "inkey.ch" #include "mypublic.ch" REQUEST HB_CODEPAGE_RU866 HB_SetCodepage( "RU866" ) ......... dir_org = "Лукашевский Андрей Александрович." color_f = "B/W,B/W" color_s = "B/W,W/B" color_m = "W/B,W+/B" set wrap on set scoreboard off set deleted on set softseek on set exact off set date british set epoch to 1980 set confirm on set cursor off SETBLINK(.F.) SET EVENTMASK TO INKEY_ALL w_menu = WOPEN(0,0,1,79) set color to (color_f) @ 1,00 set color to (color_m) @ 0,00 SHOWTIME(0,75,.T.,"W+/B") screen = WOPEN(2,0,24,79) ColorSClear() DEMO=.T. wstr = 'Программа установки ' + IIF(DEMO, " -версии ", "") ; + 'системы складского учета "Книга"' ; + IIF(DEMO, "", ", v.m. 2.85") + " от 19.01.2006" * OL_95AppTitle(wstr) !!!!!!!!!! Нет в xHarbour! @ 20,00 to 20,79 @ 21,00 say CENTER(wstr) if DEMO @ 21,21 say "DEMO" color "GR+/W" endif @ 22,00 say CENTER("Р А З Р А Б О Т Ч И К : " + Bess(dir_org)) Примерно так. Ни один из этих @...say не вывелся (как и все прочие в программе)
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.04.06 20:12. Заголовок: Re:
Насчет дизассемблирования - теоретически все так, но только теоретически Картина такая Есть Harbour Virtual Marhine, есть почти пара сотен команд пи-кода, и HVM как раз занимается их итерпретацией, или выполнением, причем каждой команды в отдельности Взломать HVM можно, но смысла особого в этом нет - она и так открыта, зная, что программа написана на харборе, легко получить HVM легальным путем Да и задача взлома, или дизассемблирования HVM на ПОРЯДОК сложнее задачи декомпиляции пи-кода Т.О. все в любом случае сводится к декомпиляции пи-кода А это задача не очень сложная А дизассемблировать можно все что угодно... теоретически :) Даже blinker executable compress, тем более это никакая не защита, а всего лишь упаковка Твой пример протестирую чуть позже
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.04.06 20:48. Заголовок: Re:
Проблема c Center: клиппер по умолчанию выравнивает строку по ширине экрана (окна), а харбор это не делает Поставь пока у себя: Center(cStr, MaxCol()+1), а я на CVS поправлю
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.04.06 21:50. Заголовок: Re:
Pasha Павел , просто хочу тебе спасибо сказать за твой труд !!!!! Молодец !!!!!!!!!!!!!!!!!!
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.04.06 00:47. Заголовок: Re:
Pasha пишет: цитата: | Проблема c Center: клиппер по умолчанию выравнивает строку по ширине экрана (окна), а харбор это не делает |
| Да, действительно. Павел, большое Спасибо за подсказку. Если не трудно, подскажи потом, когда и откуда можно будет закачать сборку с исправлением а то ведь это у меня только программка-установщик (хотя и в ней штук 20-30 Center() будет, а уж в самой программе - немеряно).
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.04.06 01:02. Заголовок: Re:
SHOWTIME(0,75,.T.,"W+/B") тоже ведёт себя странно: светит время не на строке 0, а почему-то на строке 2...
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.04.06 11:14. Заголовок: Re:
Можно включить в свою программу эту функцию Center #include "common.ch" FUNCTION CENTER( c, n, p ) DEFAULT n TO MaxCol() + 1 DEFAULT c TO "" RETURN PadC( AllTrim( c ), n, p ) А сборка будет только в следующем релизе, если никто не выложит свою конечно Насчет ShowTime в клиппере она работает в пределах экрана, а в харборе в пределах окна Надо поправить, повожусь
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 12.04.06 01:35. Заголовок: Re:
Pasha пишет: цитата: | FUNCTION CENTER( c, n, p ) DEFAULT n TO MaxCol() + 1 DEFAULT c TO "" RETURN PadC( AllTrim( c ), n, p ) |
| Павел, извини за назойливость, но PADC() не есть равноценная замена CENTER()... В Клиппере выполнение, например: @ 22,0 say CENTER("Большой привет!") @ 22,0 say CENTER("Привет!") даёт результат: Привет!вет! А с приведённой тобой функцей результат: Привет! Хотелось бы, чтобы оно было как прежде (иначе бы я пользовался везде PADC() и не выпендривался :-) То есть я-то, конечно, в строке возврата функции напишу: RETURN RTRIM(PadC( AllTrim( c ), n, p )) но хотелось бы чтобы в следующем релизе CENTER() работала в точности так как раньше...
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 12.04.06 07:43. Заголовок: Re:
ShowTime поправил на CVS Center пересмотрю
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 20.04.06 04:27. Заголовок: Re:
А как производится печать? Я ещё не пробовал, но сильно подозреваю, что команды языка PCL, которые у меня вставлены в печатаемых строках для переключения шрифтов, не сработают...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 22.04.06 01:14. Заголовок: Re:
Pasha пишет: цитата: | Можно включить в свою программу эту функцию Center |
| Оказалось, что CENTER() в Clipperе использует другой алгоритм, гораздо более сложный! Вкратце: центрирование делается не в границах окна, а в границах рамки окна (если она есть), и в большинстве случаев не зависит от начальной колонки вывода центрируемого текста. Именно этим CENTER() мне в своё время и понравился, я только не отдавал себе в этом отчёта. Короче, достаточно выполнить пример в Clipperе и в xHarbour, чтобы увидеть разницу... WOPEN(8, 18, 14, 63) COLORWIN(MAXROW(),1,MAXROW(),MAXCOL()) COLORWIN(1,MAXCOL(),MAXROW(),MAXCOL()) set color to ("W/B,B/W*") @ 0,0 clear to MAXROW()-1,MAXCOL()-1 @ 0,00 to 5,43 double @ 1,04 say CENTER("Лукашевский Андрей Александрович") @ 2,04 say CENTER("(812) 000-00-00, с 20.00 до 23.00 (моск.)") INKEY(0) WCLOSE()
|
|
|
|
| Администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 23.04.06 12:02. Заголовок: Re:
Кажется нащупал. Функцию Center надо написать так: FUNCTION CENTER( c, n, p ) DEFAULT n TO MaxCol() + 1 - Col()*2 DEFAULT c TO "" RETURN RTrim(PadC( AllTrim( c ), n, p ))
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.04.06 01:39. Заголовок: Re:
Pasha пишет: цитата: | Кажется нащупал. Функцию Center |
| Вроде теперь нормально, Паша, спасибо! А что всё-таки с печатью? Я так понял, что вся печать идёт через класс Win32prn? То есть это офигеть сколько в программе переделывать... У кого-нибудь есть идеи по минимизации трудозатрат в этом процессе? И можно ли где-то поподробнее почитать о классе Win32prn? Разбираться с примером из тестов - та ещё задачка, без десятков печатаний вряд ли получится... Кстати, NG по xHarbour ни у кого не завалялся?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.04.06 08:10. Заголовок: Re:
Лукашевский пишет: цитата: | та ещё задачка, без десятков печатаний вряд ли получится... |
| Печатай на виртуальный принтер. Варианты PdfFactory VentaFax MS Office Document Image Writer
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 27.04.06 01:42. Заголовок: Re:
Dima пишет: цитата: | Печатай на виртуальный принтер. |
| Ещё проще, наверное, будет посмотреть в любом графическом редакторе - ведь в резалте графический файл получается? С TESTW32P.PRG мне не удалось получить результирующего BMP-файла, хотя он, как мне кажется, должен получаться, т.к. oPrinter:Destroy() я заремил... Где всё-таки можно почитать о функциях класса WIN32PRN, чтобы не тыкаться вслепую?
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 02.05.06 07:17. Заголовок: Re:
Обнаружилось ещё одно несоответствие xHarbour и Clipper: присвоение := значения в строке объявления Static переменной в xHarbour выдаёт ошибку, а в Clipper проходит на "ура". Так я отслеживаю, первый раз выполняется модуль с момента запуска программы или не первый (присвоение переменной указанного в строке объявления Static значения производится только при первом выполнении модуля).
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|