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

Fortran Discussion :

DLL Fortran depuis VBA Excel [Error 48]


Sujet :

Fortran

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut DLL Fortran depuis VBA Excel [Error 48]
    Bonjour,

    Je fais face depuis quelques jours, je cherche en vain a regler un probleme de communication entre VBA Excel et une DLL en Fortran.

    Voici les symptomes:
    Sur l'ordinateur qui a servit a compiler la DLL (avec intel visual fortran), cela fonctionne tres bien mais des que je met la DLL sur un autre ordinateur (meme repertoir, meme OS), cela ne fonctionne plus et j'ai une Erreur 48 (fichier xxx.DLL introuvable).
    Ensuite, j'installe Intel visual fortran et je recompile la DLL sur l'ordi ou ce ne fonctionnait pas et la miracle, cela fonctionne...

    Je ne comprend pas en quoi le fait de compiler sur l'ordinateur peut regler ce probleme.

    Aurriez-vous une idee? Un fichier est-il cree dans un dossier specifique (system32 par exemple)? Est-ce qu'un registre est modifie pas ICF?

    Y'aurait-il un moyen de faire fonctionner la DLL sans devoir la compiler sur chaque ordi concerne?

    Merci, Cordialement
    Zerbault

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Est-il possible que ta DLL fasse appel à des fonctions se trouvant dans une librairie système externe. Par switch de compilation, tu peux habituellement dire le type d'assemblage si les fonctions externes doivent être incluses dans ta DLL (importées d'un LIB) ou maintenues externes et disponibles via une DLL.

    Peut-être as-tu pris la 2ième piste et cette DLL additionnelle n'est disponible que si tu installe le compilateur.

    Peux-tu exécuter ta DLL sur un nouveau PC sur lequel tu installe le compilateur et tu copies la DLL sans la recompiler ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Merci Sylvain pour ta réponse.

    J'ai essayé ta seconde hypothèse (tester la DLL en ayant installé IVF mais sans la compiler sur l'ordinateur en question).
    Ca n'a pas fonctionné.

    Le code de ma DLL ne fait pas appel explicitement une autre DLL. Cependant ton hypothèse #1 est judicieuse.
    Comment indiques-tu quel type d'assemblage tu souhaites?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Citation Envoyé par zerbault Voir le message
    J'ai essayé ta seconde hypothèse (tester la DLL en ayant installé IVF mais sans la compiler sur l'ordinateur en question).
    Ca n'a pas fonctionné.
    Troublant. Quelle version de Windows ?

    Citation Envoyé par zerbault Voir le message
    Le code de ma DLL ne fait pas appel explicitement une autre DLL. Cependant ton hypothèse #1 est judicieuse.
    Comment indiques-tu quel type d'assemblage tu souhaites?
    Tu n'as pas à faire appel explicite à une DLL pour qu'une DLL soit référencée. Un « read » ou une fonction mathématique de base peut très bien utiliser une fonction d'une DLL externe. Comment indique t'on ? Je n'ai pas accès à un compilateur présentement, mais de mémoire, c'est relatif au « binding dynamique » vs « binding statique ». De toute façon, ça ne semble pas le problème.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Lis-tu l'anglais ? Si oui, peut-être trouveras-tu quelque chose ici http://software.intel.com/en-us/forums/topic/276097

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Merci pour le lien, je vais essayer de voir s'il n'a pas des similitudes avec mon problème.

    Les différents PC que j'ai utilisé jusqu'à présent (pour compiler et ensuite tester) sont tous sous Windows 7.
    Ma DLL en question n'est pas nouvelle, je l'ai juste modifié il y'a peu pour l'adapter.
    Maintenant que j'y repense, je crois que la DLL de départ qui fonctionnait sous n'importe quel PC avait été compilé avec un PC sous XP.

    Je vais regarder dans les options de compilation.

    A+

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    J'ai trouvé la sollution !
    Il fallait que je change le mode de compilation de la dll de "Debug" à "Release" dans Intel Visual Fortran.

    Merci encore et A+

Discussions similaires

  1. Appeler une dll C# depuis VBA
    Par doudblast dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 17/08/2009, 16h07
  2. Appel de DLL Fortran depuis C/C++
    Par ultimate_manx dans le forum Fortran
    Réponses: 3
    Dernier message: 31/05/2007, 14h44
  3. Commander Access depuis VBA Excel
    Par Mou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2007, 15h41
  4. Exécuter un programme Fortran depuis VBA ?
    Par zerbault dans le forum Fortran
    Réponses: 1
    Dernier message: 08/01/2007, 10h58
  5. [VBA-E Access] Connection a Access depuis VBA Excel
    Par wace dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2006, 13h33

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