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