GDI+ Problème d'installation!
GDI+ Problème d'installation!
J'ai téléchargé l'exe de Denis, et déjà ce que je ne comprend pas, c'est que je ne peut pas coché: fichier lib (XP32) mais je peux le faire pour Vista?
Lorsque j'essaie de compiler un exemple, j'ai l'erreur suivante:
Polink Fatal error: File no found Gdiplus.lib
Où doit se trouver ce fichier exactement?
Je viens de voir qu'en copiant le fichier gdiplus.lib (de vista?) dans le répertoire "PureLibraries\Windows\Libraries" ça marche
Pourquoi n'est il pas copier dedans à l'extraction?
Aussi j'ai lu qu'il fallait la lib Com de Freak, c'est juste pour la macro DefineGUID où c'est pour beaucoup d'autres fonctions?
Lorsque j'essaie de compiler un exemple, j'ai l'erreur suivante:
Polink Fatal error: File no found Gdiplus.lib
Où doit se trouver ce fichier exactement?
Je viens de voir qu'en copiant le fichier gdiplus.lib (de vista?) dans le répertoire "PureLibraries\Windows\Libraries" ça marche
Pourquoi n'est il pas copier dedans à l'extraction?
Aussi j'ai lu qu'il fallait la lib Com de Freak, c'est juste pour la macro DefineGUID où c'est pour beaucoup d'autres fonctions?
Bonsoir,
Il s'agit de GDI+ ....
1- A partir du répertoire du PureBasic lancer l'exe de Denis... Il va créer un répertoire "GDIplus_1_0"
2- a la fin il propose le fichier "ComFramework.zip" il faut le télécharger
3- Il sera aussi dans le répertoire de PureBasic
4- Le décompressez aussi dans le répertoire PureBasic. Il va créer un répertoire ComFramework et surtout placer deux fichier dans le répertoire "résidents"
A partir de là tout est en place... Je suppose que d'après ce que tu dis c'est ce qui à été fait sauf pour "ComFramework.zip" peut-être
Il s'agit de GDI+ ....
1- A partir du répertoire du PureBasic lancer l'exe de Denis... Il va créer un répertoire "GDIplus_1_0"
2- a la fin il propose le fichier "ComFramework.zip" il faut le télécharger
3- Il sera aussi dans le répertoire de PureBasic
4- Le décompressez aussi dans le répertoire PureBasic. Il va créer un répertoire ComFramework et surtout placer deux fichier dans le répertoire "résidents"
A partir de là tout est en place... Je suppose que d'après ce que tu dis c'est ce qui à été fait sauf pour "ComFramework.zip" peut-être
En effet je n'ai pas installé ComFramework.zip
J'ai ajouté ma propre macro pour DefineGUID
et cette macro pour CompareGUID
J'ai testé quelques exemples, je ne sais pas si d'autres fonctions font appel à la lib Com de Freak
Je trouve dommage qu'il faille installé plusieurs packages pour GDI+, je crois à ce que j'ai pu lire que GDI+ n'a pas un réel besoin de cette lib sinon que pour quelques fonctions alors si on peut s'en passer.
J'ai ajouté ma propre macro pour DefineGUID
Code : Tout sélectionner
Macro DefineGUID(IID, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11)
DataSection
IID:
Data.l data1
Data.w data2, data3
Data.b data4, data5, data6, data7, data8, data9, data10, data11
EndDataSection
EndMacro
Code : Tout sélectionner
Macro CompareGUID(guid1,guid2)
CompareMemory(guid1,guid2,16)
EndMacro
Je trouve dommage qu'il faille installé plusieurs packages pour GDI+, je crois à ce que j'ai pu lire que GDI+ n'a pas un réel besoin de cette lib sinon que pour quelques fonctions alors si on peut s'en passer.
Ben voilà une solution super.
Mais dans le pack de Freak il y a aussi un répertoire crée avec pas mal de "choses" et je n'ai ps regardé plus loin, ça fait un paquet à tester...
Mais ce serai intéressant de placer tes macro en "Include" et juste copier la ligne d'appel quand c'est necessaire. Si bien sur il n'y a que ça !

Mais ce serai intéressant de placer tes macro en "Include" et juste copier la ligne d'appel quand c'est necessaire. Si bien sur il n'y a que ça !

Re: GDI+ Problème d'installation!
Salut Nico, l'exe teste la version de Windows, si tu as XP ou inférieure, il installe le fichier gdiplus.lib pour XP (609 fonctions), si ta as Vista c'est la version du fichier gdiplus.lib pour Vista qui comporte plus de fonctions. Si tu as vista, j'ai interdit de pouvoir cocher la case du fichier lib pour XP. Si tu as une vesion inférieure à Vista, j'ai interdit de pouvoir cocher le fichier lib de Vista. Il doit avoir une copie du fichier lib dans le dossier fichier_Lib_Vista32 ou fichier_Lib_XP32 selon le cas là ou tu as décompressé.nico a écrit :J'ai téléchargé l'exe de Denis, et déjà ce que je ne comprend pas, c'est que je ne peut pas coché: fichier lib (XP32) mais je peux le faire pour Vista?
Cette erreur ne devrais pas arriver, le fichier lib s'il a été sélectionné (normalement il y est par défaut) cela veut dire soit qu'il a été décompressé dans un mauvais dossier (c'est possible vu que cela devient pénible de trouver le chemin de PB ça change avec chaque version de PB) soit il y a eu une erreur et il n'a pas été décompressé ce qui doit plus être le cas.nico a écrit :Lorsque j'essaie de compiler un exemple, j'ai l'erreur suivante:
Polink Fatal error: File no found Gdiplus.lib
Où doit se trouver ce fichier exactement?
Je viens de voir qu'en copiant le fichier gdiplus.lib (de vista?) dans le répertoire "PureLibraries\Windows\Libraries" ça marche
Pourquoi n'est il pas copier dedans à l'extraction?
Ce fichier doit se trouver dans le dossier \PureLibraries\Windows\Libraries
Quelle que soit la version de Windows (j'ai fait des essais avec XP et le fichier lib de Vista) si tu as le fichier lib de Vista ça fonctionne.
Oui, certains exemples utilisent la macro de Freak DefineGUID , c'est tout ce que j'utilise des son très bon travail.Aussi j'ai lu qu'il fallait la lib Com de Freak, c'est juste pour la macro DefineGUID où c'est pour beaucoup d'autres fonctions?
Pour les quelques exemples qui utilisent cette macro, tu peux retirer la macro de Freak et définir de manière classique les GUID en data et leur utilisation avec le ? devant l'étiquette ou écrire la même macro que freak ce que tu as fait.
Désolé pour le problème du lib, donnes-moi la version de Windows que tu utilises pour que je fasse des tests et la version de PB.
Pour PB 4.30 à partir de beta 4, je préconise la version qui est dans ma signature, pour les version précédente, l'ancienne version dont le lien est dans les messages sur GDI+
A+
Denis
Bonjour,
Je rebondis sur cette question d'installation... Et reprend une partie de "critique" vis à vis de cela justement et qui est :
Qu'en dites vous ? En tout cas tel quel, il se produit des problèmes d'installations tel qu'avec GDI+ et d'application.
Je rebondis sur cette question d'installation... Et reprend une partie de "critique" vis à vis de cela justement et qui est :
Il faudrait pour résoudre cela que chaque versions quand elle s'installe considère SON répertoire d'installation comme SA base à lui... Quitte à dupliquer les répertoire des application sur lesquelles ont travaille.Pourquoi j'ai tant de problèmes pour passer d'une version PB à l'autre ? Surtout avec l'IDE de base, JaPBe est beaucoup plus souple... Pourquoi Chaque version de PB dans son répertoire à lui, est-il dépendant de la version de PB que l'on viens de quitter et encore mieux, AVOIR deux fenêtres ouvertes, l'une avec 4.2 et l'autre avec 4.3 qui travaillerais sur leurs version d'un même programme, ayant les mêmes fichiers (mais dans leurs répertoires à eux)... Faire tourner l'ancien développement en l'adaptant dans le nouveau... Bref que lorsque je Click sur 4.2 je ne me retrouve pas dans le répertoire de 4.3 et vice versa... J'ai lu, la doc cela est parait-il possible ??? Jusque maintenant je n'y suis pas vraiment arrivé, et ce parce que tout les deux font référence au même "Pref" dans le "Document/Setting/..... " Et le plus embêtant c'est l'utilisation de compilateurs de l'autre version... Si l'on veux éviter cela à coup presque certains, c'est de changer à chaque fois dans l'IDE de base dans Option Compilateur et les Préférences...
Qu'en dites vous ? En tout cas tel quel, il se produit des problèmes d'installations tel qu'avec GDI+ et d'application.
Je pense qu'il y a un sac de noeuds avec la décompression du lib, ça marchait sur ma bécane sous XP et Vista. Je vais jeter un oeuil, tu as installé quelle version de mes fichiers d"exemples ? la version pour 4.30 beta 4 ou celle d'avant ?
Il se peut aussi que le chemin de PB retrouver par le code que j'utilise amène au dossier de PB par exemple 4.20 et le fichier lib existe donc il le trouve et j'interdis de pouvoir cocher la case car le fichier est déjà présent, et si tu utilises la version 4.30 et que le fichier lib n'est pas présent pour cette version, tu as l'erreur polib.
Voici la procedure que j'utilise pour retrouver le chemin, tu peux me donner le chemin qu'il retrouve dans ton cas ? Merci
Pour la décompression de l'ensemble, il n'est pas obligatoire de décompresser dans le dossier de PB, on peut décompresser le tout sur n'importe quel disque/dossier, ça doit fonctionner à partir du moment ou on ne modifie pas les chemin d'accès dans le code PB des exemples. Un fichier est créé de manière dynamique car son contenu dépend du chemin de décompression, c'est un fichier ressource utilisé par 2 exemples GDI+.
Je n'installe strictement rien dans la base de registre.
A+
Denis
Il se peut aussi que le chemin de PB retrouver par le code que j'utilise amène au dossier de PB par exemple 4.20 et le fichier lib existe donc il le trouve et j'interdis de pouvoir cocher la case car le fichier est déjà présent, et si tu utilises la version 4.30 et que le fichier lib n'est pas présent pour cette version, tu as l'erreur polib.
Voici la procedure que j'utilise pour retrouver le chemin, tu peux me donner le chemin qu'il retrouve dans ton cas ? Merci
Code : Tout sélectionner
Procedure.s CheminPureBasic()
Protected hKey1.l, Type.l, Res.l, Folder$, lpbData.l, cbData.l
cbData = (#MAX_PATH*2) + 2
lpbData = AllocateMemory(cbData)
Folder$ = ""
hKey1 = 0
Type = 0
Res = -1
Select OSVersion()
Case #PB_OS_Windows_95, #PB_OS_Windows_98, #PB_OS_Windows_ME
Res = RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS, @hKey1)
Case #PB_OS_Windows_NT3_51, #PB_OS_Windows_NT_4, #PB_OS_Windows_2000, #PB_OS_Windows_XP, #PB_OS_Windows_Server_2003
Res = RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "Applications\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS, @hKey1)
Case #PB_OS_Windows_Vista, #PB_OS_Windows_Server_2008, #PB_OS_Windows_Future
Res = RegOpenKeyEx_(#HKEY_CURRENT_USER, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS, @hKey1)
EndSelect
If Res = #ERROR_SUCCESS
If RegQueryValueEx_(hKey1, "", 0, @Type, lpbData, @cbData) = #ERROR_SUCCESS
Folder$ = PeekS(lpbData)
Folder$ = GetPathPart(Mid(Folder$, 2, Len(Folder$)-7))
EndIf
RegCloseKey_(hKey1)
EndIf
If lpbData
FreeMemory(lpbData)
lpbData = 0
EndIf
; la chaine avec la beta4 se présente comme ceci
; C:\Program Files\PureBasic 4.00\PureBasic.exe" "%1" /P "C:\Documents And Settings\ww\Application Data\PureBasic\PureBasic.prefs"
; je teste sur le % en retirant ensuite les 3 derniers caractères
If FindString(Folder$, "%", 1)
Folder$ = StringField(Folder$, 1, "%")
Folder$ = GetPathPart(Folder$)
Debug Folder$
EndIf
ProcedureReturn Folder$
EndProcedure
Pour la décompression de l'ensemble, il n'est pas obligatoire de décompresser dans le dossier de PB, on peut décompresser le tout sur n'importe quel disque/dossier, ça doit fonctionner à partir du moment ou on ne modifie pas les chemin d'accès dans le code PB des exemples. Un fichier est créé de manière dynamique car son contenu dépend du chemin de décompression, c'est un fichier ressource utilisé par 2 exemples GDI+.
Je n'installe strictement rien dans la base de registre.
A+
Denis
Salut Denis,
Au cas ou, la "critique" ne s'adresse pas à toi, mais à l'installation de PB lui même qui conduit a ton explication... Et qui serait simplifié si les versions de PB étaient parfaitement indépendante...
A+
Gerhard
Au cas ou, la "critique" ne s'adresse pas à toi, mais à l'installation de PB lui même qui conduit a ton explication... Et qui serait simplifié si les versions de PB étaient parfaitement indépendante...
Et si je suis intervenus dans votre conversation c'est simplement pour cette remarque.Denis a écrit :Je pense qu'il y a un sac de noeuds avec la décompression du lib, ça marchait sur ma bécane sous XP et Vista. Je vais jeter un oeuil, tu as installé quelle version de mes fichiers d"exemples ? la version pour 4.30 beta 4 ou celle d'avant ?
Il se peut aussi que le chemin de PB retrouver par le code que j'utilise amène au dossier de PB par exemple 4.20 et le fichier lib existe donc il le trouve et j'interdis de pouvoir cocher la case car le fichier est déjà présent, et si tu utilises la version 4.30 et que le fichier lib n'est pas présent pour cette version, tu as l'erreur polib. Etc...
A+
Gerhard
Et la base des problèmes provient du fait que si l'on travaille avec deux versions, c'est la dernières qui est référencée dans "C:\Documents And Settings\ww\Application Data\PureBasic\PureBasic.prefs"
D'où il installera la version GDI+ pour 4.3 dans 4.2 si par hasard quand tu as quitté tu travaillais en 4.2... Et inversement.. C'est comme ça que j'ai aussi pataugé pendant 3 ou 4 heures. Et quand j'ai compris et en replaçant les choses à leurs place. En l'occurrence copier tel quel le répertoire GDI+1.0 de 4.2 dans 4.3 qui instantanément s'est mis à fonctionner... Puis réinstaller le GDI+ de 4.2 dans 4.2 en veillant bien que ce qui était cette fois dans C:\documents And setting.... "soit en conformité avec 4.2...
D'où il installera la version GDI+ pour 4.3 dans 4.2 si par hasard quand tu as quitté tu travaillais en 4.2... Et inversement.. C'est comme ça que j'ai aussi pataugé pendant 3 ou 4 heures. Et quand j'ai compris et en replaçant les choses à leurs place. En l'occurrence copier tel quel le répertoire GDI+1.0 de 4.2 dans 4.3 qui instantanément s'est mis à fonctionner... Puis réinstaller le GDI+ de 4.2 dans 4.2 en veillant bien que ce qui était cette fois dans C:\documents And setting.... "soit en conformité avec 4.2...
Voilà, pourquoi je suis intervenus... Maintenant étant trop nouveau dans l'histoire je peu me tromper, en tout cas c'est ce qui s'est passé.Denis a écrit : ; la chaine avec la beta4 se présente comme ceci
; C:\Program Files\PureBasic 4.00\PureBasic.exe" "%1" /P "C:\Documents And Settings\ww\Application Data\PureBasic\PureBasic.prefs"
; je teste sur le % en retirant ensuite les 3 derniers caractères
Encore moi... Je pense que en l'état des chose, en plaçant "bêtement" un "PathRequester" pour désigner l'endroit de l'installation tu couperais cours aux problème. Peut-être avec un avis préalable signalant qu'il faut savoir ou on installe et pourquoi pas que une fois choisit tu vérifie que tu te trouve bien dans le répertoire de la bonne version... ???
Maintenant je ne dis plus rien
Maintenant je ne dis plus rien

C'est ce que je vais faire pour confirmer le dossier trouvé, c'est le plus simple dans l'immédiat.GeBonet a écrit :Encore moi... Je pense que en l'état des chose, en plaçant "bêtement" un "PathRequester" pour désigner l'endroit de l'installation tu couperais cours aux problème. Peut-être avec un avis préalable signalant qu'il faut savoir ou on installe et pourquoi pas que une fois choisit tu vérifie que tu te trouve bien dans le répertoire de la bonne version... ???
Maintenant je ne dis plus rien
Merci
A+
Le dossier d'install n'est pas lié à Purebasic, ce n'est qu'un chemin de décompression des fichiers. Chaque exemple PB a un chemin relatif sur le wrapper Gdi+ (XIncludeFile "..\..\gdiplus.pbi" qui est indépendant du chemin de PB. Normalement, si le lib et la dll Gdiplus sont présents dans la version de PB qui exécute l'exemple, cela devrait fonctionner.nico a écrit :To code me donne le chemin de Purebasic (version 4.20), mais de toute façon on choisit le dossier d'install, non!?
(une chose bizarre c'est que si j'exécute ton code depuis la 4.30, je n'obtiens rien)
Je vais réinstaller la version 4.20 si je ne l'ai pas effacée et faire des tests la semaine prochaine.
C'est vraiment bizarre que tu n'ai rien depuis la version 4.30 car c'est indépendant de la version de PB sauf pour les instructions PB qui changent en fonction des versions.
Vraiment aucun message d'erreur lorsque tu lances un exemple?
Je parlais de ton code pour tester le dossier de Purebasic, il ne me donne pas le chemin (je n'ai rien) si je le lance depuis la version 4.30.Vraiment aucun message d'erreur lorsque tu lances un exemple?
Sinon je n'ai pas de problème pour compiler les exemples.
Je reviens sur la lib de Com de freak, je trouve vraiment dommage que l'on soit obliger de la télécharger pour GDI+, surtout qu'on ne fait pas appel aux objet COM pour faire fonctionner GDI+, tout cela pour une ou deux fonctions.
Cela dit je respecte le travail énorme que tu as fait, c'est juste un avis personnel.
