IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Impossible de passer une variable string dans un .dll créé avec VB6.0


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Impossible de passer une variable string dans un .dll créé avec VB6.0
    Bonjour à tous

    Pour protéger le code des macros que j'ai créées sous Excel (mais aussi sous Catia), on m'a demandé de les transformer en .dll avec VB6.0 grâce à cette méthode : http://www.developpez.net/forums/d70...-standard-vb6/

    Je parviens bien à créer des .dll et même à les utiliser dans l'éditeur VB6.0. Pour reprendre l'exemple du lien, je fais des tests avec la fonction Increment, je déclare mon .dll, et je fais msgbox increment(1), qui devrait m'afficher"2". Donc ça marche très bien l'éditeur VB6.0, mais dans l'éditeur VBA d'Excel, ça fait planter le logiciel qui "cesse de fonctionner". Pareil pour Catia où j'ai l'erreur "AutomationInfrastructure.tst a cessé de fonctionner".

    Je ne sais plus trop quoi faire.. Donc je viens demander si quelqu'un ne peut pas m'aider!

    J'ai du VB7.1 pour Excel, et du VB6.5 pour Catia, l'erreur viendrait elle de là?

    Merci d'avance.

    Edit :
    Après plusieurs manipulations, je parviens finalement à utiliser un .dll avec Excel avec la fonction Increment, cependant, ça marche avec les chiffre (long, integer,...), mais il y a un problème avec les variables string qui ne passent pas, et qui font planter le logiciel...

    Je fais un test avec cette fonction dans mon .dll :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function Afficher(MyString As String) As String
     
        MsgBox MyString
     
    End Function
    Avec VB6.0, j'ai ????????????????????????????? qui s'affiche, et avec Excel, ça plante et ça cesse de fonctionner..

    Si j'appelle la fonction de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function Afficher(Byval MyString) As String
     
        MsgBox MyString
     
    End Function
    Ca affiche la bonne chose avec VB6.0, mais ça plante quand même avec Excel..

    Si quelqu'un a une solution..

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut

    Que donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function Afficher(Byval MyString)
     
        MsgBox MyString
     
    End Function
    sans typer la fonction ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Le résultat est le même =/

    J'ai tout de même réussi à résoudre le problème des '?????????????????' qui s'affichaient avec VB6.0, il fallait convertir le texte en Unicode.
    Mais avec Excel, ça plante dès qu'il manipule une variable string..

Discussions similaires

  1. utiliser une DLL faite en vb6 avec VB.net
    Par j.sineau dans le forum VB.NET
    Réponses: 6
    Dernier message: 10/12/2007, 10h33
  2. Utiliser une DLL Delphi avec C#
    Par h8ciz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2007, 16h46
  3. Utilisation de case à cocher avec VB6 dans Datagrid
    Par seyiv dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/05/2007, 15h11
  4. Utilisation de dll personelle avec VB.NET
    Par yakay dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/12/2006, 09h18
  5. [VB.Net] Comment utiliser une dll faite en VB6 ?
    Par hassanovich dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/06/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo