Etienne BAUDOUX

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX

Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

+2
polien
pascal18600
6 participants

    [résolu]message à l'impression

    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty [résolu]message à l'impression

    Message par pascal18600 Mer 5 Sep 2012 - 22:49

    bonsoir,

    je me retrouve avec ce message quand j'essaye de lancer une impression avec mon executable.

    il fonctionne bien quand je suis sous Software 2012, mais pas en autonome. il y a bien la bibliotheque Velersoftware printlib.dll de chargée dans les ressources

    [résolu]message à l'impression Erreur11

    d'ou cela vient-il ?

    je pense avoir trouvé. j'ai remis la dll dans les ressources et ça à l'air de fonctionner. c'est bizzare, car elle y etait déjà


    Dernière édition par pascal18600 le Jeu 6 Sep 2012 - 19:37, édité 1 fois
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par polien Jeu 6 Sep 2012 - 7:23

    bonjour,

    parfois, rien que le fait d'ouvrir ton programme et de laisser le fichier qui le contenait ouvert suffit à provoquer une erreur sur les dll...
    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par pascal18600 Jeu 6 Sep 2012 - 15:48

    rien a faire, toujours une erreur quand on lance l'appli sur d'autres PC

    [résolu]message à l'impression Erreur12

    je pense que la librairie "VelerSoftware.PrintLib.dll" est protégée

    si l' Admin passe par là.....
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 6 Sep 2012 - 16:38

    Bonjour,

    Et est-ce que le fichier "VelerSoftware.PrintLib.dll" existe dans le dossier "Bin" de votre solution? (voir dans votre explorateur de fichiers de Windows).
    S'il n'y ai pas, allez dans les Paramètre du projet, onglet Références, sélectionnez "VelerSoftware.PrintLib", allez dans le panneau "Propriétés", et mettez la valeur "Copier" sur "Oui".
    Si le fichier y est déjà, essayez de le supprimer, puis, allez dans les Paramètre du projet, onglet Références, et supprimez "VelerSoftware.PrintLib". Enregistrez le projet, puis générez toute la solution. Normalement SZ doit recharger la dll correctement.
    S'il ne l'a pas rajouté, ajoutez-là manuellement en allant la chercher à l'emplacement suivant : C:\Program Files\Veler Software\SoftwareZator 2012\Sources\VelerSoftware.PrintLib.dll"

    Bonne journée Smile
    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par pascal18600 Jeu 6 Sep 2012 - 17:12

    bonjour, oui c'est exactement ce que j'avais fais lors de ma première erreur, mais ca ne marche que sur le pc ou est installé SoftwareZator, sur d'autres j'ai cette erreur malgré le rajout de la dll. d'ailleurs l'executable l'ajoute bien puisque sa taille augmente. Par contre sur d'autres pc, toujours l'erreur
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 6 Sep 2012 - 17:33

    D'accord. Et la propriété "Copier" de la référence est bien sur "Oui"?
    Peut-être que le projet cherche la dll à un autre emplacement que dans le dossier dans lequel il est. Pourtant de mon côté, j'ai essayé sur un Windows n'ayant jamais connu SoftwareZator, et il n'y a pas ce problème Neutral.
    Est-ce que je peux jeter un coup d’œil à votre projet exécutable (le contenu du dossier Bin)? Si vous le voulez bien, envoyez-le moi à l'adresse suivant s'il vous plait Smile
    support@velersoftware.com

    Merci Smile
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5622
    Age : 32
    Localisation : Calvados
    Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
    Humeur : toujours cool
    Date d'inscription : 31/01/2010

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par lereparateurdepc Jeu 6 Sep 2012 - 18:46

    re ,

    Sur l'autre PC SANS SZ , la dll est-elle bien avec l'exe ?
    Avec le même nom ?
    Dans le même dossier ?

    parce que à lire :
    malgré le rajout de la dll. d'ailleurs l'executable l'ajoute bien puisque sa taille augmente

    On dirais que vous pensez que la dll est contenue DANS l'exe or NON !
    Elle doit-être avec l'exe , comme tous les plugin externes .

    Krypton entre autre .

    Voici un exenple de projet réalisé sous SZ 2011 avec les 3 dll SZ en bas :
    [résolu]message à l'impression Sz32

    Cordialement ,
    Le réparateur de PC
    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par pascal18600 Jeu 6 Sep 2012 - 18:53

    salut, oui je viens effectivemnt de m'en apercevoir, je pensais que cette dll etait incluse dans le fichier exe. justement je viens d'envoyer un message à Etienne Baudoux pour lui demander
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 6 Sep 2012 - 19:18

    Ah bah, c'est toujours les solutions les plus simples qu'on oublit de vérifoer en premier Wink Merci lereparateur Smile
    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par pascal18600 Jeu 6 Sep 2012 - 19:25

    oui, c'est en emportant tout le repertoire sur un autre pc que j'ai vu que ca fonctionnais

    mais les images, elles sont bien incluses dans l'exe ?

    je suis vraiment confu de vous avoir fait perdre du temps pour rien

    merci encore
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 6 Sep 2012 - 19:52

    Il n'y a pas de mal voyons Wink le forum sert à ça. Et moi j'en ai profité pour revérifier s'il n'y avait pas de bug dans SoftwareZator à corriger avant sa sortie en Novembre.

    J'explique pour l'histoire des ressources :
    On peut choisir d'utiliser des images sans les inclurent dans le fichier exécutable, il suffit d'utiliser l'action "Charger une image à partir d'un fichier". Au final, l'exécutable ne chargera cette image en mémoire qu'au moment de l'exécution de celui-ci, car de toute façon il ne sait pas le faire autrement.
    Pour les dll, il faut d'abord comprendre à quoi ça sert : une dll renferme un ensemble de fonctions que l'on va utiliser depuis un exécutable (ou une autre dll). Quand on créer une fonction (que se soit avec SZ ou en codant vraiment), on doit des fois faire appel à ces fonctions contenus dans une dll (dans le cas présent, pour utiliser les actions Impression, on en a besoin). Quelque part dans le code, on aura un endroit qui va "appeler" cette fonction.
    Pour que l'ordinateur arrive à compiler (générer) votre exécutable, il faut qu'il trouve cette fameuse fonction, donc, il faut lui donner cette dll. Le problème c'est que à la différence des images, le compilateur charge la dll durant la compilation (alors que l'image, non), et créer ce qu'on va appeler un "lien" entre notre exécutable et cette dll. En gros, quand on dit d'appeler la fonction Y de la dll X.dll, le compilateur traduis ça en "va me chercher tel fichier, charge le, cherche la fonction, appel là !"...
    Seulement, pour créer cet exécutable, on a pointé vers un fichier (le dll), donc, on ne peut pas dire à l'exécutable qu'il faut ensuite le cherche à l'intérieur de lui-même (dans les ressources). L'exécutable a été configuré pour trouvé le fichier a un endroit précis, donc si on lui déplace, il ne le trouve plus.
    Voila également pourquoi on peut mettre une image directement dans l'exécutable : le compilateur ne la charge pas donc on peut la mettre ou on veut.

    Ensuite, dans la pratique, on peut mettre une dll dans les ressources et la charger "uniquement au moment de l'exécution", mais ça, c'est autre chose de plus complexe, et que l'on ne peut pas faire avec SoftwareZator, et qui de toute façon n'est utile que dans certains cas très particulier (c'est marrant ça fait 3 jours que je travail dessus justement dans le projet "SoftwareZator" Razz)

    En espérant que ces explications ai répondus à votre question Smile

    Bonne soirée
    avatar
    pascal18600
    On commence à connaître
    On commence à connaître


    Masculin Nombre de messages : 91
    Age : 70
    Localisation : bourges
    Emploi/loisirs : cinéma, astronomie, magie
    Humeur : toujours bonne
    Date d'inscription : 25/08/2012

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par pascal18600 Jeu 6 Sep 2012 - 19:58

    voila une explication claire et nette. J' ai compris , Merci encore pour tout

    bonne soirée également
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par polien Jeu 6 Sep 2012 - 20:06

    re,


    Ensuite, dans la pratique, on peut mettre une dll dans les ressources et la charger "uniquement au moment de l'exécution", mais ça, c'est autre chose de plus complexe, et que l'on ne peut pas faire avec SoftwareZator, et qui de toute façon n'est utile que dans certains cas très particulier (c'est marrant ça fait 3 jours que je travail dessus justement dans le projet "SoftwareZator" Razz )

    C'est possible ca? Shocked
    merci d'avoir enrichi ma culture informatique silent
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 6 Sep 2012 - 20:23

    Oui c'est possible, c'est d'ailleurs le même principe pour les plugins de SZ (sauf que les dll sont sur le disque dur et non dans les ressources de l'exécutable).
    Le principe est de charger la dll au moment de l'exécution, et, comme l'ordinateur ne connait pas cette dll, c'est à nous d'écrire un algorithme étudiant la liste des fonctions de la dll pour récupérer celle qui nous intéresse, et on demande à l'exécuter "le fonction trouvée".
    JHPC-Software
    JHPC-Software
    Connaisseur
    Connaisseur


    Masculin Nombre de messages : 761
    Age : 31
    Localisation : Bruxelles
    Emploi/loisirs : Etudiant en informatique / Informatique, Electronique, ...
    Humeur : Très bonne
    Date d'inscription : 07/01/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par JHPC-Software Ven 7 Sep 2012 - 14:20

    Bonjour,
    Ensuite, dans la pratique, on peut mettre une dll dans les ressources et la charger "uniquement au moment de l'exécution", mais ça, c'est autre chose de plus complexe, et que l'on ne peut pas faire avec SoftwareZator, et qui de toute façon n'est utile que dans certains cas très particulier (c'est marrant ça fait 3 jours que je travail dessus justement dans le projet "SoftwareZator" )

    Tien je me posais la question ... Maintenant j'ai ma réponse Very Happy
    Par contre ca m’intéresserais bien les étapes Very Happy

    Cordialement,
    JHPC
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5622
    Age : 32
    Localisation : Calvados
    Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
    Humeur : toujours cool
    Date d'inscription : 31/01/2010

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par lereparateurdepc Ven 7 Sep 2012 - 15:41

    re ,

    Perso , j'ai déjà testé des DLL intégrées en ressources mais je n'ai jamais réussi à les utilisées ....
    elles sont reconnue en tant que fichier binaire ou Text dans VisuelBasic 2010 donc non utilisables dans les Imports ou Dim .... ( c'étais tros simple hihi )

    Cordialement ,
    Le réparateur de PC
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Ven 7 Sep 2012 - 16:05

    (On s'éloigne un peu du sujet de base mais comme il est résolu je me permet d'apporter des explications aux autres questions. Ces explications n'ont rien à voir avec SoftwareZator et sont purement techniques)

    En effet, comme je le disais, le compilateur (pour ne pas dire le framework) ne connait pas cette dll vu qu'elle est dans un exécutable qui "n'existe pas" vu que le code "n'est pas encore" compilé. Pour chargé une dll dit "dynamiquement", c'est à dire au moment de l'exécution, à partir d'un fichier, d'une ressource ou du GAC, il faut utiliser la commande System.Reflection.Assembly.Load(arguments) et ses dérivée. Cette fonction retourne une valeur de type "System.Reflection.Assembly"
    Pour analyser cet "assembly", on va utiliser la méthode "GetTypes" qui retourne la liste des Class contenu dans la dll, puis on peut utiliser la méthode "GetProperty" pour récupérer une propriété par exemple.
    Voici un exemple : http://msdn.microsoft.com/en-us/library/system.reflection.assembly.gettypes%28v=vs.100%29.aspx

    Maintenant imaginons que vous ayez par exemple chargé la dll "System.Windows.Forms", qui permet d'avoir une interface graphique. Si on veut créer une nouvelle fenêtre, il faut l'instancier.
    Habituellement, on ferait ça :
    Code:
    Dim frm As New System.Windows.Forms.Form()
    Pour instancier un type d'une dll chargé dynamiquement, in faut procéder ainsi :
    Code:
    MonAssemblyChargéDynamiquement.CreateInstance("System.Windows.Forms.Form")

    En espérant avoir répondu à vos questions Smile
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5622
    Age : 32
    Localisation : Calvados
    Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
    Humeur : toujours cool
    Date d'inscription : 31/01/2010

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par lereparateurdepc Ven 7 Sep 2012 - 16:07

    re ,

    Hum intéressant Smile

    Je teste de suite Smile

    Merci

    Cordialement ,
    Le réparateur de PC
    JHPC-Software
    JHPC-Software
    Connaisseur
    Connaisseur


    Masculin Nombre de messages : 761
    Age : 31
    Localisation : Bruxelles
    Emploi/loisirs : Etudiant en informatique / Informatique, Electronique, ...
    Humeur : Très bonne
    Date d'inscription : 07/01/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par JHPC-Software Ven 7 Sep 2012 - 16:10

    Bonsoir,
    Merci, c'est très intéressant ... Very Happy

    Cordialement,
    JHPC
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Ven 7 Sep 2012 - 16:14

    Oups pardon, j'ai manqué de rigueur dans mon exemple. C'est plutôt ça :
    Code:
    Dim frm As Object = MonAssemblyChargéDynamiquement.CreateInstance("System.Windows.Forms.Form")
    Je vais peut-être écrire un article sur le blog de Veler Software traitant de ça. Ca fera un bon tutoriel Smile Ca vous dit?
    JHPC-Software
    JHPC-Software
    Connaisseur
    Connaisseur


    Masculin Nombre de messages : 761
    Age : 31
    Localisation : Bruxelles
    Emploi/loisirs : Etudiant en informatique / Informatique, Electronique, ...
    Humeur : Très bonne
    Date d'inscription : 07/01/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par JHPC-Software Ven 7 Sep 2012 - 16:16

    Bonsoir,
    Oui très bon et très intéressant surtout pour ceux qui se reposerais la question.

    Cordialement,
    JHPC
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par polien Ven 7 Sep 2012 - 17:05

    re,

    oui sa pourrait être utile pour les utilisateurs avancés de SZ Smile
    Admin
    Admin
    Administrateur
    Administrateur


    Masculin Nombre de messages : 1882
    Age : 32
    Localisation : Boulogne Billancourt(92100)(France)
    Emploi/loisirs : Software Development Engineer
    Date d'inscription : 24/01/2008

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Admin Jeu 27 Sep 2012 - 8:18

    Bonjour,

    J'ai mi pas mal de temps à écrire le fameux article dont je vous ai parlé, j'étais assez occupé avec SofwareZator et ne souhaitais pas faire autre chose tant que je n'avais pas terminé.
    Voici l'article : créer une (très simple) application modulable en .Net : http://blog.velersoftware.com/?p=82&lang=fr
    Les sources sont en C# mais je ne pense pas que vous aurez de grandes difficultés à les traduire en VB.Net. Au pire il y a des traducteur sur internet Smile

    Bonne journée
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par polien Jeu 27 Sep 2012 - 10:42

    Bonjour,

    bon article, simple et compréhensible et un projet exemple bien expliqué, bravo amusé
    reste à adapter les sources en vb study

    Cordialement,
    polien
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5622
    Age : 32
    Localisation : Calvados
    Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
    Humeur : toujours cool
    Date d'inscription : 31/01/2010

    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par lereparateurdepc Jeu 27 Sep 2012 - 15:38

    re ,

    polien :
    Déjà la première ligne de code est :
    c#
    Code:
    System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFile("MyFirstPlugin.dll");
    ce qui donne en VB.NET :
    Code:
    DIM assembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("MyFirstPlugin.dll")

    Le code complet :
    Code:

     Dim assembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("MyFirstPlugin.dll")

            ' Pour chaque type de l'assembly
            For Each type As Type In assembly.GetTypes()
                ' Si le type est hérité de MyPluginType et a l'attribut public, alors
                If type.IsSubclassOf(GetType(PluginEngine.MyPluginType)) And type.IsPublic Then
                    ' On créer une nouvelle instance de ce type
                    Dim plugin As PluginEngine.MyPluginType = DirectCast(assembly.CreateInstance(type.FullName), PluginEngine.MyPluginType)
                End If
            Next

            Dim plugin As PluginEngine.MyPluginType = New MyFirstPlugin.Plug1()

    Cordialement ,
    Le réparateur de PC


    Dernière édition par lereparateurdepc le Jeu 27 Sep 2012 - 16:03, édité 2 fois

    Contenu sponsorisé


    [résolu]message à l'impression Empty Re: [résolu]message à l'impression

    Message par Contenu sponsorisé


      La date/heure actuelle est Jeu 21 Nov 2024 - 20:05