Appel d'une DLL non managée depuis une autre DLL

rimo42 - Modifié le 6 avril 2020 à 16:05
Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 mai 2024 - 6 avril 2020 à 16:44
Salut a tous.
Je fais appel a vous faute de solution a ce dernier problème que je ne comprends pas.
J'ai une dll non managée que je génère (libsndfile) .
Dans mon programme vb.net si je l'appelle avec une déclaration:
 <DllImport("libsndfile.dll", CallingConvention:=CallingConvention.Cdecl)>
    Public Function wav_frequency(ByVal filename As String) As Integer

    End Function


Cela fonctionne sans problème.

Si je met cette déclaration dans une DLL vb.net également (un autre projet qui dépends de celui ci) ca fonctionne en debug, mais plus quand c'est déployé.
Pourtant les 2 DLL sont bien dans le répertoire après l’installation. tout se passe comme si ma DLL vb, ne cherchait pas dans le répertoire local la librairie libsnd.

J'aime bien mutualisé, et comme cette fonction va être appelée de plusieurs application, je voulais la mutualiser. Au pire je migrerai dans le code principal, mais j'aimerai comprendre pourquoi cela ne fonctionne pas ou ce que je fais de mal.
Merci pour votre aide.

3 réponses

Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 mai 2024 656
6 avril 2020 à 13:23
Bonjour

essaye de mettre le chemin complet de ta dll
DIm chemin as string = Path.Combine(Application.StartUpPath,"libsndfile.dll") 

Sans garantie.

PS: tu as essayé d'utiliser les balises de code, voici un petit tuto pour s'en servir correctement https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
rigecko Messages postés 7 Date d'inscription jeudi 31 juillet 2014 Statut Membre Dernière intervention 6 avril 2020
6 avril 2020 à 16:24
malheureusement DllImport n'accepte que des chaines constantes!
0
Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 mai 2024 656
6 avril 2020 à 16:44
Ben sinon tu peux peut-être enregistrer ta dll avec regsvr32
https://www.qwant.com/?q=regsvr32&client=brz-brave
0
Rejoignez-nous