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 :

DLL, Visual basic et Delphi


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut DLL, Visual basic et Delphi
    Bonjour,

    J'ai un programme en visual basic 6.0 qui utilise la fonction FileTreat d'une DLL. Cette fonction transforme un fichier source en un fichier destination.

    Voici son écriture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function TraiteFichier(ByVal NomFicSrc As String)
    NomFicDst = App.Path & "\OutFile.txt"
    Res = FileTreat(ByVal NomFicSrc, ByVal NomFicDst)
    Cette fonction marche très bien. NomFicSrc contient le chemin du fichier source et le fichier de destination est correctement généré.

    Je veux utiliser la même fonction dans un programme Delphi. J'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function FileTreat( Src:PChar; Dst:PChar):Integer; external 'treat.dll';
     
    Function TraiteFichier:Integer;
    Const
       SrcName = 'c:\FichierOrg.txt';
       DstName = 'c:\FicherDst.txt';
    Begin
      Result:= FileTreat(PChar(SrcName),PChar(DstName));
    End;
    Cette fonction se lance normalement mais elle renvoie un result indiquant une erreur d'argument. Comme si mes noms de fichiers n'étaient pas vus correctement.

    Est-ce qu'il y a une subtilité dans le passage des paramètres entre VB et Delphi ? En particulier en ce qui concerne les chaines ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 519
    Points : 25 037
    Points
    25 037
    Par défaut
    ajoute un "stdcall"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function FileTreat( Src:PChar; Dst:PChar):Integer; stdcall; external 'treat.dll';
    Par défaut, c'est en register qui transmet les paramètres dans l'ordre naturel (De gauche à droite) contrairement au standard C qui transmet en partant du dernier paramètre au dernier (De droite à gauche)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci,

    C'est celà, je n'arrive pas à me faire que StdCall n'est pas le mode par défaut...

    Et.

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

Discussions similaires

  1. DLL delphi et ADDIN Outlook en Visual Basic
    Par Skape252 dans le forum API, COM et SDKs
    Réponses: 16
    Dernier message: 19/04/2013, 16h43
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. Utiliser une DLL en Delphi avec Visual Basic
    Par jix69 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 25/11/2008, 02h32
  4. DLL Visual C++ appelée dans un programme Visual Basic
    Par marseillais57 dans le forum MFC
    Réponses: 7
    Dernier message: 21/07/2005, 14h57
  5. dll visual basic dans VC++
    Par Nicky dans le forum MFC
    Réponses: 6
    Dernier message: 21/09/2004, 10h57

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