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

Langage Delphi Discussion :

[Appli][Autre language]dll-contenant form


Sujet :

Langage Delphi

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut [Appli][Autre language]dll-contenant form
    Bonjour,

    J'essaie d'utiliser une dll faite en delphi dans d'autre language de programmation en l'occurence HT Basic (mais aussi VB pour tester)

    Si dans les deux basic j'arrice à charger les dll et les fonctions, le comportement n'est pas du tout celui attendu.

    Ma dll peut creer et détruire une form et une procedure permet de la déplacer (je l'ai récuperer sur un tutorial trouver sur se site, d'ailleur si j'utilise la dll avec delphi pas de problème tout marche), j'ai changé l'exportation en ajoutant stdcall.

    Au début avec delphi, la fomr était créé mais dés que j'essayais de la déplacer, elle se retrouver réduite mais sans possibilité de la restaurer. J'ai modifié l'importation pour ajouter stdcall et tout a remarché de nouveau. 8)

    Par contre pour VB, la form est crée mais dés que je veux la déplacer, elle disparaît complètement (pas de reduction), et en HT Basic la form n'apparait pas comme si elle n'était pas créer.

    Je nage complètement, si quelqu'un peut me dire où est le problème, je l'en remerci d'avance

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut [Application][Autre language]dll-contenant form (du neuf)
    J'ai continuer de chercher et voilà ce que j'ai réussit à obtenir aprés mettre acharné sur les deux basic

    Pour VB, la form est crée sans problème et maintenant je peux l'afficher, d'ailleurs je le fais en showmodal, j'ai trouvé d'où venait mon problème je renommer les function mais dans le mauvais ordres.

    Mais pour HT Basic, j'ai toujours un gros soucis. D'abord je me suis apperçus que la form était bien chargé et afficher mais décharger aussitôt (ça aide de développer sous windows aprés quelque plantage il est devenu plus lent me permettant de voir un cours instant la form).
    C'est pourquoi je l'ai mit en showmodal. Pourtant pas moyen de récuperer la valeur de la fonction, la valeur retourné semble être zéro quelque que soit le résultat.

    D'avance merci pour votre aide.

  3. #3
    Membre régulier

    Inscrit en
    Juillet 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 15
    Points : 92
    Points
    92
    Par défaut
    T'as demandé dans le forum spécifique à HT Basic ?

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut
    Oh !

    Je ne savais même pas qu'il avait un forum ht basic sur developpez.com pourtant j'ai regardé !

    Sinon j'ai trouvé un moyen de recupere la valeur, je passe par une procedure et transmet le paramètre par reéférence (adresse), heureusement la personne qui connait htb dans ma boite est passé et ma suggéré d'abandonner la fonction. 8)

    Merci pour ton aide. et aussi merci à window pour ramer à mort après quelque plantage sinon je chercherai encore.

    Je vais chercher le forum htb, ça peut m'être util car htb n'est pas ma tasse de thé. Je préfére Delphi.

    A++

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut
    J'ai regarde et regardé une deuxième fois et je n'ai pas vu de forum htb par contre j'ai posté dans autre language une question sur htb (je n'arrive pas à transmettre de tableau, ni de pointeur sur un tableau pb de syntaxe)

    A++

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut
    Bon voilà où j'en suis arrivé.

    Depuis les deux Basic, en utilisant les fonction de ma dll,
    je peux creer une form (fiche), recupéré une valeur et la transmettre au basic et détruir la form.

    Je peux aussi transmettre un tableau, le modifier et le renvoyer au basic si la form n'est pas crée.

    Et le problème est là, si je crée la form lorsque je transmets les paramètres je récupère n'importe quoi dans la DLL, exemple je transmet 6 pour indiquer la taille du tableau et dans la DLL cela devient 390156 (ce qui n'arrive pas si la form n'est pas crée). Je ne comprends pas pourquoi, creerform n'a que trois ligne :
    application.Create(TForm, MaForm);
    MaForm.Label3.caption := '0';
    le nom de la variable qui reçoit la longueur du tableau est 'taille' et elle n'apparait que dans la procedure recevant le tableau (déclarer dans les paramètres)

    Alors pourquoi je recupère n'importe quoi :

    Si par contre, je cree la form dans la procedure (je mit le code de la procedure creer dans l'autre) et que je la libère également dans la procedure, j'ai récupère les bonnes valeurs. Je ne comprends pas pourquoi non plus et c'est plutôt contraignant de proceder ainsi.

    D'avance merci pour vos lumières

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 585
    Points
    585
    Par défaut
    J'ai changer dans ma dll la façon dont je recuperais la taille je la passe maintenant par adresse (var taille : integer) et je recrée la form avec une procedure dédié, la valeur est enfin correcte.

    Mais de la à comprendre pourquoi ! surtout que tout fonctionnait tant que je ne crée pas la form avec une procedure dédié.

    Merci de votre aide, je vais considerer que mon problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2006, 12h24
  2. Fonctionnement des API et autres fichiers DLL ???
    Par Forthman dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 07/02/2006, 14h15
  3. passage de pointeurs entre appli delphi et DLL c++
    Par e-teo dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2005, 21h46
  4. [Dll] et form
    Par petitcoucou31 dans le forum Langage
    Réponses: 2
    Dernier message: 13/10/2005, 12h56
  5. Utilisation d'une Variable(Vb) dans d'autre language
    Par cach dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2005, 12h00

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