Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4937 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VB.NET et dll en C++] La réf d'objet pas définie à une instance d'obj

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB.NET et dll en C++] La réf d'objet pas définie à une instance d'obj

n°715882
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 10:30:13  profilanswer
 

(desolé pour le titre, j'ai du abréger)
 
 
bonjour.
 
je dois créer une dll en c++ à utiliser sous VB.NET.
 
disons que j'ai un problème, et que pour le résoudre j'ai effectué quelques tests.
En voici un :
 
dans ma dll je mets :
 
 

Code :
  1. void Test(LPSTR *chaine)
  2. {
  3. strcpy(*chaine,"Hello World !" );
  4. }


 
 
donc ma dll reçoit une chaîne de caractères.
 
dans mon code VB.NET, je mets :
 
 

Code :
  1. Private Declare Ansi Sub Test Lib "MaDll.dll" (ByRef maChaine As String)


 
 
 
puis dans une form je crée le bouton :
 

Code :
  1. Private Sub TestBT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TestBT.Click
  2. Test(abTempData)
  3. End Sub


 
 
 
 
toutes les compilations se déroule bien, et à l'éxecution j'obtiens :
La référence d'objet n'est pas définie à une instance d'un objet
 
Si je "vide" la procedure "Test" de ma dll, ça fonctionne (mais ça fait rien !).
 
 
 
Je pense qu'il s'agit d'une erreur tout bête mais j'avoue être bien coincé dessus.
merci d'avance pour votre aide.
 
DaNeeL


Message édité par daneel17fr le 05-05-2004 à 10:30:44
mood
Publicité
Posté le 05-05-2004 à 10:30:13  profilanswer
 

n°715964
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 11:24:54  profilanswer
 

allez quoi !

n°715985
Taz
bisounours-codeur
Posté le 05-05-2004 à 11:39:49  profilanswer
 

strcpy(*chaine,"Hello World !" );
 
cai quoi un LPSTR ? si c'est un char* planqué ...
 
-> strcpy(chaine,"Hello World !" );

n°715995
cricri_
Posté le 05-05-2004 à 12:00:12  profilanswer
 

De mémoire je crois qu'il faut curieusement déclarer ByVal au lieu de ByRef dans : (ByRef maChaine As String)

n°716011
HelloWorld
Salut tout le monde!
Posté le 05-05-2004 à 12:12:09  profilanswer
 

Il me semble que les chaines VB sont unicodes.

n°716075
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 13:04:02  profilanswer
 

Taz a écrit :

strcpy(*chaine,"Hello World !" );
 
cai quoi un LPSTR ? si c'est un char* planqué ...
 
-> strcpy(chaine,"Hello World !" );


 
non  
erreur à la comilation
merci pour ton aide :)

n°716077
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 13:04:43  profilanswer
 

cricri_ a écrit :

De mémoire je crois qu'il faut curieusement déclarer ByVal au lieu de ByRef dans : (ByRef maChaine As String)


je vais tester ça des que j aurai fini mon sandwich ;)

n°716079
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 13:04:58  profilanswer
 

HelloWorld a écrit :

Il me semble que les chaines VB sont unicodes.


 
ça changerait quoi ?

n°716117
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 13:35:16  profilanswer
 

cricri_ a écrit :

De mémoire je crois qu'il faut curieusement déclarer ByVal au lieu de ByRef dans : (ByRef maChaine As String)


 
non ça marche pas :'(

n°716120
cricri_
Posté le 05-05-2004 à 13:38:53  profilanswer
 

Mais as-tu bien crée un .def dans ton projet Dll déjà pour redéfinir la fonction exportée et éviter la décoration ?

mood
Publicité
Posté le 05-05-2004 à 13:38:53  profilanswer
 

n°716183
HelloWorld
Salut tout le monde!
Posté le 05-05-2004 à 14:11:59  profilanswer
 

Citation :

ça changerait quoi ?


que c'est pas des char * ou un LPSTR mais des wchar_t * ou LPWSTR

n°716190
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 14:14:37  profilanswer
 

HelloWorld a écrit :

Il me semble que les chaines VB sont unicodes.


après documentation : exact
j'ai changé l'entête de ma fonction mais rien de changé à part ça

n°716193
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 14:15:15  profilanswer
 

cricri_ a écrit :

Mais as-tu bien crée un .def dans ton projet Dll déjà pour redéfinir la fonction exportée et éviter la décoration ?


oui oui

n°716196
daneel17fr
Rien n'empêche Melba
Posté le 05-05-2004 à 14:16:17  profilanswer
 

HelloWorld a écrit :

Citation :

ça changerait quoi ?


que c'est pas des char * ou un LPSTR mais des wchar_t * ou LPWSTR


non en fait c'est ansi, et j'ai remis ANSI ds mon entête.
mais je pense pas que ce soit l'origine de mon erreur.

n°716493
HelloWorld
Salut tout le monde!
Posté le 05-05-2004 à 16:48:08  profilanswer
 

Remplace par un messagebox + void Test(void) pour savoir si c'est ton code/passage de param qui est fouarreux ou autre chose.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VB.NET et dll en C++] La réf d'objet pas définie à une instance d'obj

 

Sujets relatifs
[php-objet]Renvoyer un objet
SqlCommand en VB .netpeut on exporter une structure définie dans une DLL
est possible de faire ca... enregistrer un objet image...entier non-signés avec VB .NET
[VB .NET]Prob de refresh avec ListBox et un DataviewLimites PHP objet
[Java] un objet File a partir d'un Reader? 
Plus de sujets relatifs à : [VB.NET et dll en C++] La réf d'objet pas définie à une instance d'obj


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)