NViewLibLoad

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

NViewLibLoad

Message par threedslider »

Voici le code que j'ai trouvé dont je ne sais plus quel lien j'ai cherché cela :

Code : Tout sélectionner

Global curpath.s
curpath=Space(256)
GetCurrentDirectory_(256,@curpath)



Procedure.l LoadNViewImage(ImageNumber,FileName$)
;
; Load JPG, JIF, GIF, BMP, DIB, RLE, TGA and PCX images with PB and NViewLib.DLL
; NViewLib 1.1.4 is free: http://www.programmersheaven.com/file.asp?FileID=2045
;
;
; SYNTAX
;    ImageHandle = LoadNViewImage(#Image, FileName$)
;
; DESCRIPTION
;    Load the specified image.
;    The image format can be a JPG, JIF, GIF, BMP, DIB, RLE, TGA or PCX file.
;    If the function fails, 0 is returned, Else all is fine.
;    This command requires the NVIEWLIB.DLL in the Path.
;

  
  res=OpenLibrary(0, curpath + "NViewLib.dll")

  If res
    AddrImage = CallFunction(0, "NViewLibLoad",Filename$,0)
    Width     = CallFunction(0,"GetWidth")
    Height    = CallFunction(0,"GetHeight")
    newImage  = CreateImage(ImageNumber,Width,Height)
                StartDrawing(ImageOutput(0))
                  DrawImage(AddrImage,0,0)
                StopDrawing()
                DeleteObject_(AddrImage)
                
        ;save = CallFunction(0,"NViewLibSaveAsJPG",80,"test.jpg")

    
    CloseLibrary(0)
    Else
    MessageRequester("ERROR","Cant find NVIEWLIB.DLL in Path",0):End
  EndIf
  ProcedureReturn newImage
EndProcedure






File$ = OpenFileRequester("Load Image", "", "All supported images | *.jpg;*.jpeg;*.jif;*.gif;*.bmp;*.dib;*.rle;*.tga;*.pcx | All files *.* | *.*", 0)
If File$ <> ""
  If LoadNViewImage(1,File$)

    OpenWindow(0,200,200,ImageWidth(0),ImageHeight(0),"Nviewload test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    SetForegroundWindow_(WindowID(0))

    Repeat
       event=WaitWindowEvent()
       If event=#WM_PAINT
          StartDrawing(WindowOutput(0))
             DrawImage(ImageID(0),0,0)
          StopDrawing()         
       EndIf
    Until event = #PB_Event_CloseWindow

  EndIf
EndIf
End
J'ai fixé quelques codes des erreurs messages, mais par contre je ne sais pas comment fixer ce truc là :
[11:41:23] [COMPILER] Line 27: Bad parameter type, number expected instead of string.
Pourtant cela devrait marcher sans problème, savez vous quel est le problème et cette erreur de Filename$ ? Comment fixer cela ?

PS: voici la DLL ==>> Nviewlib https://www.dropbox.com/s/uxjeonnba45fb ... b.dll?dl=0

Merci.
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

Et je suis sur Purebasic version 5.72 comme précision, voilà.
Avatar de l’utilisateur
Naheulf
Messages : 191
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Re: NViewLibLoad

Message par Naheulf »

Je t'invite vivement à lire entièrement la doc de la fonction "CallFunction()" que tu appelles à la ligne 27 de ton programme. La réponse à ta question se trouve dedans.
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

Je pense que tu dois retourner l'id de ton image (valeur numérique) et non le chemin de l'image (String)

Et si tu aurais un lien qui explique les différentes fonctions de ta DLL ça serait mieux. :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

Naheulf a écrit :Je t'invite vivement à lire entièrement la doc de la fonction "CallFunction()" que tu appelles à la ligne 27 de ton programme. La réponse à ta question se trouve dedans.
Oui j'ai lu mais d'explication basique...
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

venom a écrit :Je pense que tu dois retourner l'id de ton image (valeur numérique) et non le chemin de l'image (String)

Et si tu aurais un lien qui explique les différentes fonctions de ta DLL ça serait mieux. :wink:

@++
Ah bon faut la valeur numerique ? tu sais comment on fixe cela par le code ?

Voici le lien tres peu d'explication mais cela montre quelques fonctions == >>> https://www.opendll.com/index.php?file- ... on=1.0.0.0
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

threedslider a écrit : Ah bon faut la valeur numerique ? tu sais comment on fixe cela par le code ?
Je n'ai pas compiler ton code mais l'id de ton image (d'après ton code) est ImageNumber

Donc j'imagine que

Code : Tout sélectionner

CallFunction(0, "NViewLibLoad",Filename$,0)
attend ImageNumber au lieu de Filename$

Après je n'ai pas essayé c'est juste de la supposition. Car ton erreur dit bien que callfuction attend une valeur numérique et non un string. :wink:
Ou alors le chemin de l'image mais via un pointeur

Et oublie pas de compiler en 32 bits. Beaucoup de DLL tournent en 32bits

Elle sert à quoi cette DLL au fait ? Si non as tu fait une recherche sur le forum des buveurs de thé a la crème :D







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

venom a écrit :
threedslider a écrit : Ah bon faut la valeur numerique ? tu sais comment on fixe cela par le code ?
Je n'ai pas compiler ton code mais l'id de ton image (d'après ton code) est ImageNumber

Donc j'imagine que

Code : Tout sélectionner

CallFunction(0, "NViewLibLoad",Filename$,0)
attend ImageNumber au lieu de Filename$

Après je n'ai pas essayé c'est juste de la supposition. Car ton erreur dit bien que callfuction attend une valeur numérique et non un string. :wink:
Ou alors le chemin de l'image mais via un pointeur

Et oublie pas de compiler en 32 bits. Beaucoup de DLL tournent en 32bits

@++
C'est pas mon code j'ai juste remanié les quelques codes mais enfin je l'ai trouvé (putain j'ai galéré à trouver lol) sur net avec ancien topic purebasic en anglais ==>> https://www.purebasic.fr/english/viewto ... w=previous, tu as raison peut etre faut fonctionner en 32 bits...
Elle sert à quoi cette DLL au fait ? Si non as tu fait une recherche sur le forum des buveurs de thé a la crème :D
Elle sert à visualiser les plus populaires les images jpeg, gif, bmp, etc... mais elle date longtemps en 2000 je crois.
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

2000 oui compile en 32bits alors.

Tu as réussi a faire fonctionner ton code ? Si oui partage le si ça peux servir a quelqu'un :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

venom a écrit :2000 oui compile en 32bits alors.

Tu as réussi a faire fonctionner ton code ? Si oui partage le si ça peux servir a quelqu'un :wink:

@++
Si je mets un nombre numérique comme 1 cela marche en 32 bits mais plus rien pas d'image... :-/

Cela veut rien dire un nombre car NViewLibLoad "devrait" charger le nom du fichier comme jpg ou bmp en "string", est ce que c'est pas plutôt un bug de la part du Purebasic ??
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

Dans ces cas là utilisé un pointeur comme dans ce code ?
Fin je ne suis pas devant un ordi pour tester :lol:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

venom a écrit :Dans ces cas là utilisé un pointeur comme dans ce code ?
Fin je ne suis pas devant un ordi pour tester :lol:
@++
Oui avec @FileName$ sa marche mais message erreur loading...

Moi cela donne au debugger le Width faut être supérieur à 0 ... Lol O.o alors que ya getwidth... je comprends rien... je pense c'est un bug tout cela ça marche pas au niveau chargement au dll.
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

[quote="threedslider"]Moi cela donne au debugger le Width faut être supérieur à 0 .../quote]

Donc l'image ne charge pas :)






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
threedslider
Messages : 394
Inscription : dim. 01/juil./2018 22:38

Re: NViewLibLoad

Message par threedslider »

venom a écrit :
threedslider a écrit :Moi cela donne au debugger le Width faut être supérieur à 0 .../quote]

Donc l'image ne charge pas :)

@++
Oui je crois que c'est la dll est trop vieille peut être cela marche pas sur le nouveau ou récent ordinateur... :-/
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: NViewLibLoad

Message par venom »

J'avais fait des tests vite fait hier soir et j'avais des autres erreurs qui s'afficher notamment un messagebox qui disait erreur C 8O

Et après quelques secondes erreur du compilateur et tout s'arrêter sans erreur dans le rapport :lol:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre