Utiliser DLL C# en VBA

Fermé
Reisors Messages postés 153 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 4 septembre 2013 - 4 avril 2013 à 18:38
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 5 avril 2013 à 20:25
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 avril 2013 à 15:36
Bonjour,
Tu a inscrit ta dll dans le registre Windows ?
A+
0
Reisors Messages postés 153 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 4 septembre 2013 14
5 avril 2013 à 16:16
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[...]
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 avril 2013 à 18:38
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+

0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
5 avril 2013 à 20:25
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.
0