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++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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   

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