Creer une COM class en VB net?
Bonjour,
Je tente d'écrire un dll utilisable en C++ avec VBnet.
Voila mon problème:
Un logiciel tiers en utilisation (pas en développement), se sert de .dll que l'on reference dans un textbox en mode configuration.
Ces dll habituellement écrites en C++ ont des subs visibles et publics avec des paramètres entrée/sortie bien définis.
Nous sommes utilisateurs de ce logiciel et malheureusement sommes plus compétents en VB net qu'en C++.
Les développeurs du logiciel nous ont orientés vers une méthode pour voir si nos dll étaient utilisables par leur soft.
Il s'agit de l'exécutable dumpbin, outil de Visual C++.
En effet en exécutant dumpbin /exports maDll.dll les subs, fonctions et propriétés accessibles sont déclinées.
Pour tester la méthode, nous avons donc écrit un COM class en VB net implémentant une interface
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Imports System.Runtime.InteropServices
<Guid("1F249C84-A090-4a5b-B592-FD64C07DAB75"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)> Public Interface _demo
<DispId(1)> Function Concat(ByVal s1 As String, ByVal S2 As String) As String
<DispId(2)> ReadOnly Property ErrorMsg() As String
End Interface
<Guid("E42FBD03-96DF-43a7-A491-23E735B32C5C"), ClassInterface(ClassInterfaceType.None), ProgId("TestClassCom.demo")> Public Class demo
Implements _demo
Private csError As String ' stores the error message
Public ReadOnly Property ErrorMsg() As String Implements _demo.ErrorMsg
Get
Return csError
End Get
End Property
Public Function Concat(ByVal str1 As String, ByVal str2 As String) As String Implements _demo.Concat
Return str1 & " " & str2
End Function
End Class |
la compilation a généré dans le répertoir Release 4 fichiers dont:
TestClassCom.dll
TestClassCom.tlb
En utilisant VBA, et en y référençant TestClassCom, on accède à TestClassCom.demo
Par contre dumpbin /exports TestClassCom.dll
on obtient:
Citation:
Dump of file testclasscom.dll
File Type: DLL
Summary
2000 .reloc
2000 .rsrc
2000 .sdata
2000 .text
Ce qui veut dire que concat et ErrorMsg ne sont pas visibles .
Si j'ai bien compris, TestComClass est une librairy de classes et demo est une class de cette librairy
Comment peut-on faire pour apparaitre les subs fonctions propriétés et autres évenements directements dans TestClassCom ?
Merci d'avance