Utiliser DLL C# en VBA

Bonjour,

Apres avoir écumé tous les liens google je m'en remet à vous

Je souhaite utiliser une DLL créé en C# dans ACCESS 2010

J'ai inscrit pour COM dans le projet C# , ajouté la référence de la DLL dans ACCESS

Problème : une erreur survient lors de la création de l'objet dans ACCESS
=> Un composant ActiveX ne peut pas créer d'objet

Je précise que je suis sur une plateforme 64bits

Merci de votre aide

3 réponses

  1. Contributeur
    Bonjour,
    Tu a inscrit ta dll dans le registre Windows ?
    A+
    1. Bonjour,

      J'ai essayer :
      C:\Windows\SysWOW64\regsvr32.exe "C:\maDll.dll"
      ET
      regsvr32.exe "C:\maDll.dll"

      Mais j'ai une erreur :
      [..]à été chargé,mais le point d'entrée DllRegisterServeur est introuvable[...]
      1. Contributeur
        Compris..
        Tu confond Dll genre API qui ont des points d'entrées mais qui ne peuvent être générée qu'en C, C++
        Celles qui sont faite à partir de C#, VB.6 etc.. doivent être ajoutée en entier.
        Sais pas comment expliquer ça mieux.
        Note que quand j'ai répondu j'avais un sérieux doute mais comme ont dit.. dans le doute abstient-toi. :-)
        Ta dll en C# n'est pas compatible avec Excel. Elle peu servir dans une appli en C#, Je fais des dll en VB6 et je m'en sert uniquement en VB6.
        A+

        1. Contributeur
          VBA/VB6 n'est pas un langage .NET. Les DLL .NET ne peuvent être utilisées qu'avec un langage .NET, car elles définissent des points d'entrée en P/Invoke, et pas en exports C ou C++, donc on ne peut pas les utiliser en VBA/VB6. Une solution reste le C++.NET qui peut interfacer du C++ natif avec du C++.NET; mais il faut créer tous les bindings, association entre fonction native et managée .NET.