Utilisation DLL faite su VS c++ dans un projet vb.net 2008
meilop
Messages postés10Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention28 octobre 2011
-
21 sept. 2010 à 17:16
meilop
Messages postés10Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention28 octobre 2011
-
27 sept. 2010 à 15:50
Salut à tous,
VS2008
j'ai crée une dll en vs C++ que j'essaie d'executer dans un projet vb.net mais au moment de l'execution de mon programme vb.net qui appelle la methode--(classement(nombres(0)))-- de la dll j'ai une erreur du type:
"AccessViolationException was unhandled"
Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione indica che altre parti della memoria sono danneggiate.
voici mon code:
Public Class Form1
Declare Sub classement Lib "dll_classement" (ByVal nombres As Long)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim nombres(0 To 10) As Long
Dim i As Integer
nombres(0) = 11
meilop
Messages postés10Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention28 octobre 2011 22 sept. 2010 à 09:42
Salut,
Merci pour ton coup de maitre.. ça marche!!! seul bemol quand je deplace l'exe et la DLL sur une machine voisine qui n'a pas de compilateur j'ai une erreur du genre:
"SystemBadImageFormatException"
Tentative de charger un programme de format non correct.
je voulais mettre l'image de l'erreur mais je n'arrive pas.
As tu une idée?
Merci
En résumé, une DLL devrait toujours:
- Etre compilée en pur C (pas de C++ ni autre cochonceté).
- Exporter en stdcall si 32 bits sinon fastcall.
- Ne se faire qu'en mode RELEASE (niet debug).
Bonjour,
Il y a un sujet en anglais qui explique comment faire avec les versions VB et VB express pour exécuter un projet en mode 32-bits (compatibilité avec le framework et ta dll).
Bonne journée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
meilop
Messages postés10Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention28 octobre 2011 27 sept. 2010 à 15:50
Bonjour,
L'enfer des Dll ne me laisse pas mème si j'ai fait des pas en avant depuis le premier post.
Voici comment j'ai procédé:
j'ai ouvert le code source de la fameuse dll et je suis allé dans projet-->propriété
-->configuration properties-->C/C++ -->General-->detect 64 bit properties issues -->
j'ai mis à yes(/Wp64)
j'ai fait partir le build de ma solution et je me suis rendu compte que ma dll è devenue portable pour les machines à 32 bit.
Seul bemol quand j'installe sur une machine qui à seven comme OS l'erreur
"SystemBadImageFormatException"
Tentative de charger un programme de format non correct. se represente et me voila avec une dll qui marche pas sur système à 64bit...
Merci.
philippe meilo