Форум » FiveWin » при выполнении oImage:LoadBMP() программа вываливается » Ответить

при выполнении oImage:LoadBMP() программа вываливается

Softlog86: при многократном вызове oImage:LOADBMP(FotoFile) прога вываливается с сообщением " FIVEWIN вызвал общую ошибку защиты в модуле NVIEW16.DLL " При перемещении указателя по БД - в соседнем окошке подгружается фото (oImage:LOADBMP(FOTO) , oImage:Refresh()) Может вылететь на 5-м показе а может и на 20-м ..... Подскажите - может использовать другие библы для просмотра JPG ?

Ответов - 31, стр: 1 2 All

Pasha: Если это харбор, то можно использовать библиотеку freeimage Также на fivetech недавно выложили ImageViewer: http://67.222.39.232/forums/viewtopic.php?t=13725 Может она подойдет

Softlog86: У меня обычный FiveWin 2.1d :( А FreeImage - Не хочет собирать ... ругается на недостающую переменную или что-то в этом роде .....

Pasha: Softlog86 пишет: А FreeImage - Не хочет собирать Ну да, это win32 библиотека. С клиппером работать не будет


Softlog86: Иииии что делать ???

Dima: Softlog86 пишет: Иииии что делать ??? Искать FW[X] По ходу freeimage я собрал. Но не задача с примером contrib\freeimage\tests\ Во время сборки получаем [pre] ..\include\FreeImage.ch(134) Error E0024 Error in #pragma ..\include\FreeImage.ch(170) Error E0024 Error in #pragma ..\include\FreeImage.ch(202) Error E0024 Error in #pragma ..\include\FreeImage.ch(250) Error E0024 Error in #pragma [/pre] Смотрим FreeImage.ch Падает сборка на этих строках [pre] [pre] #if (defined(WIN32) || defined(__WIN32__)) //#pragma pack(push, 1) #pragma pack(1) #else #pragma pack(1) #endif // WIN32 [/pre] Что править что бы собрать пример ?

Pasha: Dima пишет: Что править что бы собрать пример ? У меня тоже были эти ошибки. Я, не мудрствуя лукаво, просто забил все #pragma pack в FreeImage.ch. После этого библиотеку можно полноценно использовать.

Dima: Pasha Спасибо , помогло !!!

Softlog86: А про меня забыли ???? Чем открывать пикчезы чтоб не рушилось ?????? П О М О Г И Т Е ! ! ! Горит задача !!!

Dima: Softlog86 пишет: Чем открывать пикчезы чтоб не рушилось Раньше то же рушилось ? PS Может NVIEW16.DLL битый........

MMK: Dima пишет: PS Может NVIEW16.DLL битый........ Может и битый. А еще NVIEWLIB.DLL была, кажется :) ( уже лет десять прошло) А в общем-то для FW нонче используется freeimage который собирать совсем не надо :) Берешь эту ДЛЛ и просто размещаешь "рядом" с задачей. ( кстати они тоже разные могут быть ) Да ,а вот при сборке своей задачи надо использовать "Image.ch" #xcommand @ <nRow>, <nCol> Image [ <oBmp> ] ; [ <resource: NAME, RESNAME, RESOURCE> <cResName> ] ; [ <file: FILE, FILENAME, DISK> <cBmpFile> ] ; [ <NoBorder:NOBORDER, NO BORDER> ] ; [ SIZE <nWidth>, <nHeight> ] ; [ <of: OF, WINDOW, DIALOG> <oWnd> ] ; [ <lClick: ON CLICK, ON LEFT CLICK> <uLClick> ] ; [ <rClick: ON RIGHT CLICK> <uRClick> ] ; [ <scroll: SCROLL> ] ; [ <adjust: ADJUST> ] ; [ CURSOR <oCursor> ] ; [ <pixel: PIXEL> ] ; [ MESSAGE <cMsg> ] ; [ <update: UPDATE> ] ; [ WHEN <uWhen> ] ; [ VALID <uValid> ] ; [ <lDesign: DESIGN> ] ; => ; [ <oBmp> := ] TImage():New( <nRow>, <nCol>, <nWidth>, <nHeight>,; <cResName>, <cBmpFile>, <.NoBorder.>, <oWnd>,; [\{ |nRow,nCol,nKeyFlags| <uLClick> \} ],; [\{ |nRow,nCol,nKeyFlags| <uRClick> \} ], <.scroll.>,; <.adjust.>, <oCursor>, <cMsg>, <.update.>,; <{uWhen}>, <.pixel.>, <{uValid}>, <.lDesign.> ) #xcommand REDEFINE Image [ <oBmp> ] ; [ ID <nId> ] ; [ <of: OF, WINDOW, DIALOG> <oWnd> ] ; [ <resource: NAME, RESNAME, RESOURCE> <cResName> ] ; [ <file: FILE, FILENAME, DISK> <cBmpFile> ] ; [ <lClick: ON ClICK, ON LEFT CLICK> <uLClick> ] ; [ <rClick: ON RIGHT CLICK> <uRClick> ] ; [ <scroll: SCROLL> ] ; [ <adjust: ADJUST> ] ; [ CURSOR <oCursor> ] ; [ MESSAGE <cMsg> ] ; [ <update: UPDATE> ] ; [ WHEN <uWhen> ] ; [ VALID <uValid> ] ; => ; [ <oBmp> := ] TImage():ReDefine( <nId>, <cResName>, <cBmpFile>,; <oWnd>, [\{ |nRow,nCol,nKeyFlags| <uLClick> \}],; [\{ |nRow,nCol,nKeyFlags| <uRClick> \}],; <.scroll.>, <.adjust.>, <oCursor>, <cMsg>, <.update.>,; <{uWhen}>, <{uValid}> )

Pasha: MMK пишет: А еще NVIEWLIB.DLL была Это тоже для харбора. А причина вываливания, скорее всего, в том, что nview16.lib не распознает формат рисунка. Вот ссылка у Патрика: http://www.fivewin.info/html/downloads.php?category=FiveWin%20users%20contributions&id=287 This TImage class uses the free Freeimage.dll to read/write image files. FreeImage is a library to support popular graphics image formats (BMP, JPEG, TIFF, PCX and others). Original code from Enrico Maria Giordano, enhanced by Hector Rodriguez and Patrick Mast. Sample code and application included. ... Compiler: [x]Harbour & Clipper

MMK: Pasha пишет: NVIEWLIB.DLL была Это тоже для харбора. А причина вываливания, скорее всего, в том, что nview16.lib не распознает формат рисунка. Вот ссылка у Патрика: http://www.fivewin.info/html/downloads.php?category=FiveWin%20users%20contributions&id=287 This TImage class uses the free Freeimage.dll to read/write image files. FreeImage is Спорить не буду :) Не помню. Эта длл у меня 1997 года и использовал я ее с клиппером То , что написал Патрик по поводу Freeimage.dll в равной степени относилось и к NVIEW16.DLL Но ты умница :) Скорее всего это действительно ошибка формата. Точно помню , что для клиппера у меня возникал вопрос с Jpg форматом. Делал следующее - открывал этот файл каким-либо редвктором и "пересохранял" . Jpg они ведь внутри все разные :) А вот с харбором на эти вилы пока не наривался :)

Softlog86: Значит выхода из этой ситуации нет ???

MMK: Softlog86 пишет: Значит выхода из этой ситуации нет ??? Вы меня удивляите ... Да даже если Вас съели , то у Вас как минимум еще два выхода. Если Вы прочитаете то , что написано выше , то там говориться что : 1. надо сделать анализ ситуации - на каких картинках вываливается .Возможно собака порылась именно в них. 2. взять другую копию длл , если надо могу выслать 3. в конце концов предложить текст пр-мы к всеобщему удовольствию :)) Не унывайте !!

Dima: Softlog86 пишет: при многократном вызове oImage:LOADBMP(FotoFile) Попробуй многократно вызвать картинку на которой изначально не падает , упадет ли ? Если нет , тогда скорее всего. MMK пишет: 1. надо сделать анализ ситуации - на каких картинках вываливается .Возможно собака порылась именно в них. MMK пишет: открывал этот файл каким-либо редвктором и "пересохранял"

Pasha: Softlog86 пишет: Значит выхода из этой ситуации нет ??? Как это нет ?!! Выход есть всегда ! Надо всего лишь скачать класс, использующий freeimage, с сайта Патрика, и прицепить его к своей программе. Изменения там минимальные, даже имя класса такое же.

Softlog86: Спасибо ВСЕМ ! Я начинающий и в такие дебри сложновато влазить ... буду пробовать

Loach: Эсли не хотите в дебри, тогда просто переведите всё в BMP и фсе проблемы отпадут :)

Softlog86: в BMP не получится . У нас каталог из JPG в 400 Мег .....

fil: На старом сайте P.Mast'a http://www.fivewin.info/html/downloads.php есть ссылка на класс tappbox - это такая штука для embedding'a чего-либо в свое окно(можно какой-нить вьювер попроще под Jpg)

Softlog86: Pasha - подскажите по шагам как это сделать ? "Подцепить Freeimage " ?? Где чего прописать ( в .PRG и в .LNK для сборки ) ?????????

Dima: Softlog86 пишет: в BMP не получится . У нас каталог из JPG в 400 Ме Получится. Есть программки для автоматического конвертирования из одного формата в другой

Softlog86: Ну так размер получится ОГО-ГО !!!!! BMP поди не сжатый графический формат .... Буду мутить с FreeImage

MMK: Softlog86 пишет: Pasha - подскажите по шагам как это сделать ? "Подцепить Freeimage " ?? Где чего прописать ( в .PRG и в .LNK для сборки ) ????????? Хотя я не Паша , а Миша , но надеюсь Вы и Паша меня простите :) В Samples'ах есть пример. Простенький. Постройте и "поиграйтесь" #include "FiveWin.ch" #include "Image.ch" //----------------------------------------------------------------------------// function Main() LOCAL oDlg, oImage DEFINE DIALOG oDlg FROM 0, 0 TO 20, 60 ; TITLE FWDESCRIPTION + " JPG,JIF,GIF,BMP,DIB,RLE,TGA,PCX support!" @ 0, 0 IMAGE oImage SIZE 150, 150 OF oDlg SCROLL // ADJUST oImage:Progress( .f. ) @ 1, 28 BUTTON "Select Image" SIZE 50,10 OF oDlg ACTION GetImage( oImage ) @ 2, 28 BUTTON "Print" SIZE 50,10 OF oDlg ACTION PrintImage( oImage ) @ 3, 28 BUTTON "Copy" SIZE 50, 10 OF oDlg ; ACTION oImage:CopyToClipboard() @ 4, 28 BUTTON "Paste" SIZE 50, 10 OF oDlg ; ACTION ( oImage:LoadFromClipboard(), oImage:Refresh() ) @ 5, 28 BUTTON "Save" SIZE 50, 10 OF oDlg ; ACTION ( oImage:SaveImage( "SAVED.JPG", 2, 25 ), MsgInfo( "saved as saved.jpg" ) ) @ 6, 28 BUTTON "Exit" SIZE 50, 10 OF oDlg ACTION oDlg:End() @ 10, 26 CHECKBOX oImage:lStretch PROMPT "Stretch" SIZE 50, 10 OF oDlg ; ON CHANGE ( oImage:ScrollAdjust(), oImage:Refresh() ) ACTIVATE DIALOG oDlg CENTER return nil //----------------------------------------------------------------------------// function GetImage( oImage ) local gcFile := cGetFile( "Bitmap (*.bmp)| *.bmp|" + ; "DIB (*.dib)| *.dib|" + ; "PCX (*.pcx)| *.pcx|" + ; "JPEG (*.jpg)| *.jpg|" + ; "GIF (*.gif)| *.gif|" + ; "TARGA (*.tga)| *.tga|" + ; "RLE (*.rle)| *.rle|" + ; "All Files (*.*)| *.*" ; ,"Please select a image file", 4 ) if ! Empty( gcFile ) .and. File( gcFile ) oImage:LoadBmp( gcFile ) endif return nil Вот все , что должно быть в пр-му. Больше ничего цеплять и прописывать не надо. Freeimage.dll (или NVIEW16.DLL )должна находиться в той же дир-рии где и Ваша задача.

Softlog86: Большое человеческое СПАСИБО !!! Всем откликнувшимся ! Оставил в директории только FreeImage.DLL ...... теперь и картинки не показывает .... ЧТо сказать Клипперу или Блинкеру чтоб взяли FREEIMAGE ??? Где прописывается это ??? Похоже что только NVIEW16.DLL подгружает .... Я так понял что в примере (freeImage) есть файл IMAGE.PRG .... там описание класса .... я его компильнул CLIPPER.EXE IMAGE Получил IMAGE.OBJ ..... его вставил в строку линковки ..... а вот теперь ругается при объявлении @ 10,10 IMAGE oIMAGE --> No Exp. Method : TIMAGE:_HDIB(0) TIMAGE:NEW(55) в этой строке действительно есть ::hDib := 0 Может с библиотеками что не так ?

Pasha: Класс TImage - это наследник TBitmap. Поскольку в конструкторе TImage есть ссылка на свойство hDB из TBitmap, значит, авторы TImage используют TBitmap "другой системы", не из поставки fw И этого класса, в архиве TestFreeImage нет Михаил, а у тебя какие TImage и TBitmap ?

MMK: Pasha пишет: Михаил, а у тебя какие TImage и TBitmap ? Стандартные, они включены в FW . Да все у Softlog86 работает, просто у него клиппер , а для него надо NVIEW16.DLL Ну и посмотреть сами файлы ( загружаемые "картнки" ) . Т.е взять построить пример ( см.выше) и посмотреть эит картинки. Softlog86 , пришлите мне свою пр-му (исходник ) и пару картинок , которые не хотят работать mkizev____mail.ru

Softlog86: Отлично ! Выслал !

Softlog86: Возращаюсь к избитой теме .... Вываливается прога !!! всё тоже самое ..... если быстро (стрелками вверх-вниз) перемещаться по таблице (соответственно обновляется картинка ) вылетает ГАДИНА !!! --------------------------------------------------------------------------------------------- |Ошибка в приложении | | | |FIVEWIN вызвал общую ошибку защиты в модуле PLIST.EXE в 000A:473E. | | Нажмите кнопку Закрыть | |--------------------------------------------------------------------------------------------| И после этого в процессах остается висеть несколько задач : WOWEXEC.EXE NTVDM.EXE Может где-то сделать "торможение" .... Но мне почемуто кажется что дистрибутивчик корявый или LIB какая-нибудь ..... Кто-б глянул примерчик с исходниками ? АУ ?!

MMK: Softlog86 пишет: Кто-б глянул примерчик с исходниками ? АУ ?! Давай ....

Softlog86: Убрал из программы всё что связано с выводом графики ..... всё-равно вываливается !!! уже даже и RDD поменял ....вместо СDX поставил NTX .... Буду по-старинке - построчно писать и тестить .... Уже даже подумываю на xHARBOUR наваять .....



полная версия страницы