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

Visual C++ Discussion :

DLL Visual C++ 2005 To VBA-Excel


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut DLL Visual C++ 2005 To VBA-Excel
    Salut,

    Je cherche un exemple de:
    -Cr�ation d'une DLL sous Visual C++ 2005
    -Utilisation de cette DLL sous VBA-Excel

    Je n'ai rien trouv� de clair sur le net
    Merci beaucoup

    voici ce que j'ai fait:

    J'ai cr�� un nouveau projet:
    -CLR
    -Class Library

    Je l'ai appel� test.

    J'aimerais exporter une fonction qui prends un double et qui renvoit ce double +1 (par exemple).

    J'ajoute donc dans le fichier test.h ce qui est en bleu:


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //test.h 
    
    #pragma once 
     
    using namespace System; 
     
    _declspec(dllexport) double _stdcall fct (double x); 
     
    namespace test { 
      
     
     public ref class Class1 
     { 
      // TODO: Add your methods for this class here. 
       
     }; 
    }

    J'ajoute dans le fichier test.cpp ce qui est en bleu:



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //test.cpp
    // This is the main DLL file. 
     
    #include "stdafx.h" 
     
    #include "test.h" 
     
    _declspec(dllexport) double _stdcall fct (double x){ 
     return x+1; 
    } 

    Je compile...

    Ceci me cr�e un fichier test.dll, ma dll...

    Je cr�e un projet sous VBA, avec un module contenant:



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Declare Function DLLfonction Lib "D:\Visual Studio 2005\Projects\test\debug\test.dll" Alias "fct" (ByVal x As Double) As Double 
     
    Sub dlltest() 
     
    Dim x As Double 
    x = 1 
    Cells(1, 1) = DLLfonction(1) 
     
    End Sub

    Je cr�e un bouton de commande qui lance ma dll depuis la feuille excel.

    -> message d'erreur:

    Erreur d'ex�cution '453':

    Point d'entr�e fct d'une DLL introuvable dans D:\Visual Studio 2005\Projects\test\debug\test.dll.


    Dois-je d�clarer ma fonction comme une m�thode de la classe Class1 ?

    J'ai vu la notion de table d'exportation et de d�coration du nom de fonction, qu'on peut corriger en rajoutant un fichier .def (mais pas avec Visual C++ 2005), dois-je faire quelque chose de similaire ?

    Merci de votre aide je vais chercher

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    tu as cr�e une "class library assembly", donc une dll .net
    ce n'est pas utilisable comme ca sous vba

    fais une dll classique win32

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par nico-pyright(c)
    tu as cr�e une "class library assembly", donc une dll .net
    ce n'est pas utilisable comme ca sous vba

    fais une dll classique win32
    Merci
    J'ai joint une copie �cran avec les choix possibles de projets sous Visual C++ 2005.
    Je n'ai pas trouv� � quoi correspond une dll classique.

    Qu'est-ce qu'une dll.net ?
    Bon je vais chercher des infos merci.
    Fichiers attach�s Fichiers attach�s

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    click sur win32 et choisi win32 project
    et coche dll

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par nico-pyright(c)
    click sur win32 et choisi win32 project
    et coche dll
    Avec win32 j'ai pas le choix d'une DLL apr�s.
    Fichiers attach�s Fichiers attach�s

  6. #6
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    voila ce que je vois moi
    Images attach�es Images attach�es   

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par nico-pyright(c)
    voila ce que je vois moi
    D'accord, j'ai la version Microsoft Visual C++ Express c'est pour �a!
    Merci je vais voir si je peux me procurer la version standard, ou me d�brouiller avec la version Express.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par Rimea Phosie
    D'accord, j'ai la version Microsoft Visual C++ Express c'est pour �a!
    Merci je vais voir si je peux me procurer la version standard, ou me d�brouiller avec la version Express.

    Je n'ai pas eu le temps d'avancer.
    J'ai donc deux questions.
    1- Puis-je cr�er des DLLs classiques win32 avec le compilateur Visual C++ 2005 Express ?
    2- Comment cr�er des DLLs .NET, et comment les appeler depuis VBA ?

  9. #9
    Membre �prouv� Avatar de Capitaine Kirk
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    D�tails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Par d�faut
    Bonsoir

    Rimea Phosie en t�l�chargeant microsoft platform sdk que tu trouveras ici Visual C++ 2005 Express Edition with the Microsoft Platform SDK et en suivant les instructions en dessous et en regardant les �tapes en images que tu trouveras ici Visual C++ 2005 Express Edition Video Feature Tour tu pourras faire du Win 32.

    Capitaine Kirk.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par Capitaine Kirk
    Bonsoir

    Rimea Phosie en t�l�chargeant microsoft platform sdk que tu trouveras ici Visual C++ 2005 Express Edition with the Microsoft Platform SDK et en suivant les instructions en dessous et en regardant les �tapes en images que tu trouveras ici Visual C++ 2005 Express Edition Video Feature Tour tu pourras faire du Win 32.

    Capitaine Kirk.
    Merci je suis en train d'installer �a.
    Par contre je ne comprends pas ce que je dois faire � l'�tape 3:

    Step 3: Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box.
    Add the paths to the appropriate subsection:

    Executable files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
    Include files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
    Library files: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib
    Note: Alternatively, you can update the Visual C++ Directories by modifying the VCProjectEngine.dll.express.config file located in the \vc\vcpackages subdirectory of the Visual C++ Express install location. Please make sure that you also delete the file "vccomponents.dat" located in the "%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0" if it exists before restarting Visual C++ Express Edition.



    J'ai joint ce que je vois de ma boite de dialogue Options o� je dois ajouter les chemins en question mais je ne comprends pas la syntaxe.
    Fichiers attach�s Fichiers attach�s

  11. #11
    Membre �prouv� Avatar de Capitaine Kirk
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    D�tails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Par d�faut
    Bonjour

    Rimea Phosie � partir de l'image que tu a joint tu cliques sur le petit dossier jaune une nouvelle ligne va apparaitre et l� tu pourra parcourir tes dossiers pour aller chercher le r�pertoire C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin,ensuite tu va dans la liste d�roulante et tu choisis Include files et la tu renouvelle l'op�ration avec le petit dissier jaune pour ajouter une nouvelle ligne et tu va chercher le r�pertire C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include, et tu fais de m�me pour le r�pertoire Lib. j'esp�re avoir �t� clair ? tiens je viens de remettre la main sur un tutoriel, je te joint le fichier tu verras c'est pas bien compliqu�

    Capitaine Kirk.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par Capitaine Kirk
    Bonjour

    Rimea Phosie � partir de l'image que tu a joint tu cliques sur le petit dossier jaune une nouvelle ligne va apparaitre et l� tu pourra parcourir tes dossiers pour aller chercher le r�pertoire C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin,ensuite tu va dans la liste d�roulante et tu choisis Include files et la tu renouvelle l'op�ration avec le petit dissier jaune pour ajouter une nouvelle ligne et tu va chercher le r�pertire C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include, et tu fais de m�me pour le r�pertoire Lib. j'esp�re avoir �t� clair ? tiens je viens de remettre la main sur un tutoriel, je te joint le fichier tu verras c'est pas bien compliqu�

    Capitaine Kirk.


    Merci beaucoup j'ai suivi les instructions et test� le projet du tutorial, �a marche
    Maintenant je suis de retour � la case d�part avec les bons outils...
    Je dois donc apprendre � cr�er une DLL Win32 et l'exporter sous VBA

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par d�faut
    Citation Envoy� par Rimea Phosie
    Merci beaucoup j'ai suivi les instructions et test� le projet du tutorial, �a marche
    Maintenant je suis de retour � la case d�part avec les bons outils...
    Je dois donc apprendre � cr�er une DLL Win32 et l'exporter sous VBA

Discussions similaires

  1. Debug DLL visual c++ 2005
    Par fx007 dans le forum Visual C++
    R�ponses: 4
    Dernier message: 06/06/2007, 12h06
  2. sqlite3.dll dans Visual Studio 2005 ?
    Par Luke58 dans le forum SQLite
    R�ponses: 5
    Dernier message: 02/03/2007, 15h58
  3. Dev-c++ Class -> Dll -> Object Vba Excel
    Par fx_forum dans le forum Dev-C++
    R�ponses: 6
    Dernier message: 06/10/2006, 19h34
  4. DLL avec Visual C++ 2005 Express
    Par Jloox dans le forum MFC
    R�ponses: 5
    Dernier message: 09/03/2006, 18h24
  5. R�ponses: 3
    Dernier message: 18/08/2005, 19h09

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