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

rimo42 - Modifié le 6 avril 2020 à 16:05
Whismeril
Messages postés
17346
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
- 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
17346
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
596
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
17346
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
27 mai 2022
596
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