Problème système d'exploitation...

guiguisi Messages postés 30 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 26 juillet 2004 - 5 juin 2003 à 18:07
guiguisi Messages postés 30 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 26 juillet 2004 - 6 juin 2003 à 11:47
S'lut à tous mes lecteurs (dont je dépends pour ma survie...).
Voila mon problème : J'ai créé une bonne grosse appli vb sous vb6 pro sous win98 se, et sur mon pc, tou tourne niquel. Sauf que si je change de poste (de syst d'exploitation, d'imprimante...), les bugs abondent.
J'ai tout d'abord du traiter un problème de paramètres régionnaux (qui étaient différents selon les windows...). J'ai ensuite eu des problème d'impression : pour imprimer incliné, j'utilise un code que que j'ai vu sur ce site, mais selon win XP, Mill, 98 ca marchait pas pareil (pas le meme sens, pas la meme taille de police...)je l'ai corrigé, mais voila qu'aujourd'hui, des problèmes (semblables à Mill) sont apparus sur une nouvelle machine sous w98.

Alors si quelqu'un avait une idée quelconque d'une solution à ces problèmes, et pouvait aussi me dire quelle(s) surprises peuvent encore m'attendre dans ce long périple.

Désolé de la longueur de ce mail, amis il reflète ainsi mes problèmes.

En espérant des réponses nombreuses et rapides, merci beaucoup.

4 réponses

UnExPeCtEdSpy Messages postés 139 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 3 juillet 2003
5 juin 2003 à 19:22
Salut,
T'as pas fini d'en chier lol
Plus tu utiliseras d'API qui font référence a des dll, ou des library en relation avec le système d'exploitation plus tu risques d'avoir des surprises de ce genre.
Malheureusement je ne crois pas qu'il y ait de solution miracle et unique pour la compatibilité des appli sur les différents Os.

Et à mon avis, la seule façon qu'on ait de t'aider, c'est que tu nous donne des infos a chaque fois que tu as un effet indésirable en changeant d'os en précisant quel api tu utilises etc..

Bon courage
,.~*`'^~.(^. :question) .^),.~^'`*~.
0
guiguisi Messages postés 30 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 26 juillet 2004
6 juin 2003 à 09:18
Ben mon logiciel utilise 6 Dll et OCX :
- MSVBVM60.DLL
- VB6FR.DLL
- VBA6.DLL
- OLE32.DLL
- COMDLG32.OCX
- MSCOMCTL.OCX

Pour le moment, mon problème vient du fait qu'il faut que j'imprime sur une meme feuille verticalement et horizontalement. J'utilise un code pris sur ce site :
Function TexteIncliné(Text, Vertic, Horiz, Nom_Fonte, Taille_Fonte, Ital, Corps, UnderL, Strik, Angle) As Long
Dim RetourFonction As Long, Contexte As Long
Printer.Print 'Initialisation du Printer.hDC
Contexte = Printer.hDC
' Conversion de la taille police (en points) en unités logiques imprimante
Hauteur = -(Taille_Fonte * GetDeviceCaps(Contexte, LOGPIXELSY)) / 85
MapModePrevious = SetMapMode(Contexte, MM_LOMETRIC)
HFont = CreateFont(Hauteur, 0&, Angle, Angle, Corps, Ital, UnderL, Strik, 0&, 0&, 0&, 0&, 0&, Nom_Fonte)
HFontOld = SelectObject(Contexte, HFont)
RetourFonction = TextOut(Contexte, 10 * Horiz, -10 * Vertic, Text, Len(Text))
RetourFonction = SetMapMode(Contexte, MapModePrevious)
RetourFonction = SelectObject(Contexte, HFontOld)
RetourFonction = DeleteObject(HFont)
End Function

malheureusement, en fonction du système d'exploitation (je pense) et d'un autre paramètre, le sens et la taille diffèrent. Alors du coup, j'avais fait 3 versions (1 par syst. d'expl.), mais manque de pot, une version w98 sous win98 a posé le meme problème que pose win Millénium.

Please, give me an idea.
Thanks.
0
UnExPeCtEdSpy Messages postés 139 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 3 juillet 2003
6 juin 2003 à 11:36
Bonjour,
Liste des module que tu utilises:

Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long

Tout ces modules sont compatible 95,98,NT,2000, ME

Donc j'abonderais plus dans le sens de rene38
(http://www.vbfrance.com/forum.aspx?Article= 65268)
qui soupçonne l'interpretation du code par l'imprimante.

Pour info j'ai testé le code chez moi (sur une station w2000 avec un hp laser 4000N):
- J'ai eu effectivement des problème de signe a résoudre :
RetourFonction = TextOut(Contexte, 10 * Horiz, 10 * Vertic, Text, Len(Text)
j'ai du virer le signe - devant la var vertic pour que le déplacement ce fasse dans le bon sens.
- La feuille se met en file d'attente et s'imprime uniquement lorsque je ferme l'appli (c'est peut etre normal)

Sinon le fonctionnement est ok. J'ai pas les moyens de tester sur ma station multi OS, car j'suis en plein déménagement. Mais si il y a vraiment des différences suivant les imprimantes , il va falloir trouver un moyen d'adapter le code suivant le tupe d'imprimante (et il y en a tellement...)

-j'ai essayé aussi sur une Espon Stylus Color, et effectivement la taille de police n'est pas interprété de la meme façon, c'est sorti 3 fois plus gros, par contre le sens de disposition et d'orientation est bien le meme.

En fait je ressoue pas ton pb dsl, mais peut etre que ça confirme un peu pour toi, que pour résoudre ce type de pb (qui n'est pas lié a l'OS) il va falloir etre en mesure de trouver via VB comment marche l'interpreteur de code des imprimantes :///

Si j'ai des infos...

Bon courage

,.~*`'^~.(^. :question) .^),.~^'`*~.
0
guiguisi Messages postés 30 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 26 juillet 2004
6 juin 2003 à 11:47
En fait, je pense pas que ca vienne uniquement de l'imprimante. Je travaille sur une HP, et il a fallut 2 versions différentes pour la meme imprimante avec win 98 et win XP. C pour ca que je pensait que ca venait surtout du syst. d'expl. Mais bon, l'imprimante peut aussi jouer un role, c sur.
Mais l'"interpréteur de code de l'imprimante", c la première fois que je vois ca, et je sais pas trop ou et comment observer ca. Si t'avais une idée??

Dsl de te prendre du temps, mais comme tu semble le seul à t'intéresser à mon problème. Merci encore.
0
Rejoignez-nous