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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

[C++] Classes, méthodes et DLLs

n°1237455
godbout
Génial.
Posté le 03-11-2005 à 13:54:30  profilanswer
 

Reprise du message précédent :

chrisbk a écrit :


c'est super verbeux ton truc :d


C'est pour que ce soit plus lisible pour quand je patirai [:cupra]

mood
Publicité
Posté le 03-11-2005 à 13:54:30  profilanswer
 

n°1237466
chrisbk
-
Posté le 03-11-2005 à 13:57:53  profilanswer
 

[quotemsg=1237452,39,19632
Mais bon, c'était bien le coup des __stdcall merci [:super chinois]
 
Par contre j'ai juste un p'tit problème avec une fonction qui retourne un const char*, ça compile pas avec le __stdcall. J'peux le virer sans pb? [:ocube] (le mauvais [:god])[/quotemsg]
 
 
(ca manque un brin de fonction ton truc)
 
heuh, tu peux faire voir l'erreur de compil ? paske ca a rien a voir quoi :d

n°1237467
chrisbk
-
Posté le 03-11-2005 à 13:58:14  profilanswer
 

godbout a écrit :

C'est pour que ce soit plus lisible pour quand je patirai [:cupra]


 
ah tiens, donc ? :d

n°1237469
godbout
Génial.
Posté le 03-11-2005 à 14:00:45  profilanswer
 

chrisbk a écrit :

[quotemsg=1237452,39,19632
Mais bon, c'était bien le coup des __stdcall merci [:super chinois]
 
Par contre j'ai juste un p'tit problème avec une fonction qui retourne un const char*, ça compile pas avec le __stdcall. J'peux le virer sans pb? [:ocube] (le mauvais [:god])


 
 
(ca manque un brin de fonction ton truc)
 
heuh, tu peux faire voir l'erreur de compil ? paske ca a rien a voir quoi :d[/quotemsg]
 
[C++ Error] EX_TWB_Extension.cpp(113): E2138 Conflicting type modifiers [:aloy]

n°1237470
chrisbk
-
Posté le 03-11-2005 à 14:01:28  profilanswer
 

godbout a écrit :


[C++ Error] EX_TWB_Extension.cpp(113): E2138 Conflicting type modifiers [:aloy]


 
??
dans ton typedef ?

n°1237471
godbout
Génial.
Posté le 03-11-2005 à 14:01:54  profilanswer
 

chrisbk a écrit :


ah tiens, donc ? :d


Faut que j'écrive Faut que j'écrive Faut que j'écrive  [:le kneu]  

n°1237476
godbout
Génial.
Posté le 03-11-2005 à 14:03:25  profilanswer
 

chrisbk a écrit :

??
dans ton typedef ?


Ouaip. :D
Et quand je mets le __stdcall derrière le const char*, ça passe :??:
Pareil dans les prototypes dans les dlls.

n°1237477
godbout
Génial.
Posté le 03-11-2005 à 14:03:53  profilanswer
 

2ème page \o/ c'est ma 1ère fois.

n°1237478
chrisbk
-
Posté le 03-11-2005 à 14:03:56  profilanswer
 

bin mets le derriere alors, kestuveux que je dise :d

n°1237484
godbout
Génial.
Posté le 03-11-2005 à 14:06:20  profilanswer
 

C'est complétement con Builder de toute façon [:mlc]

mood
Publicité
Posté le 03-11-2005 à 14:06:20  profilanswer
 

n°1237485
chrisbk
-
Posté le 03-11-2005 à 14:07:29  profilanswer
 

bah va savoir, j'ai pas la grammaire C++ en tete, donc tant que ca marche ...

n°1237491
godbout
Génial.
Posté le 03-11-2005 à 14:09:05  profilanswer
 

Ca marche impeccable de frein \o/
 
Eh ben, ça a été un plus grand succès que le topic sur mes HMENU :D

n°1237500
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:13:43  profilanswer
 

Code :
  1. TCsString* var_CsString;
  2.                 lpfnWE_GetModuleDependencies( var_CsString );
  3.                int i = 0;
  4.                while ( (var_CsString[i] == NULL) == false )
  5.                {
  6.                    Dependencies->Add( AnsiString( var_CsString[i].c_str() ) );
  7.                   i++;
  8.                }


 
j'ai du mal a comprendre comment ca peut fonctionner ? oO
 
while ( (var_CsString[i] == NULL) == false )  
=>
while (var_CsString[i] != NULL)
ou  
while (!var_CsString[i])


---------------
-( BlackGoddess )-
n°1237503
chrisbk
-
Posté le 03-11-2005 à 14:15:41  profilanswer
 

Code :
  1. while ( (var_CsString[i] == NULL) == false )


 
 
ah ouais c'est effectivement super chouette ca [:pingouino]

n°1237514
godbout
Génial.
Posté le 03-11-2005 à 14:23:56  profilanswer
 

C'est normal [:ocube]
 
Parce que bon, le contexte en gros, c'est que mon programme doit fonctionner exactement avec les mêmes dlls qui sont faites pour un autre programme. Donc j'me retape toutes les APIs à développer côté appel. Et y a des trucs assez louches, genre ce CsString. C'est un type developpé par l'autre programme. Moi je récupère juste le .h et une lib, pour pouvoir l'utiliser. Le truc, c'est que l'opérateur != n'est pas implémenté, donc j'suis obligé de passer par un == qui lui, l'est.

n°1237516
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:24:03  profilanswer
 

bin oui puis passage d'un pointeur pas initialisé, donc la lecture de var_Cstring[i] devrait faire une access violation :|


---------------
-( BlackGoddess )-
n°1237518
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:24:49  profilanswer
 

non mais la tu bosses sur un pointeur, pas sur un objet. Donc tu peux tres bien utiliser != ou == sur un pointeur.
 
a moins que j'ai raté quelque chose ?

Message cité 1 fois
Message édité par blackgoddess le 03-11-2005 à 14:25:30

---------------
-( BlackGoddess )-
n°1237520
godbout
Génial.
Posté le 03-11-2005 à 14:25:21  profilanswer
 

Oui, c'est un peu plus compliqué qu'il n'y parait [:god]
Je suis quand même pas complétement con [:dawao]

n°1237522
godbout
Génial.
Posté le 03-11-2005 à 14:26:02  profilanswer
 

blackgoddess a écrit :

non mais la tu bosses sur un pointeur, pas sur un objet. Donc tu peux tres bien utiliser != ou == sur un pointeur.
 
a moins que j'ai raté quelque chose ?


Tu veux que j'te mette le message de compil? :D

n°1237526
godbout
Génial.
Posté le 03-11-2005 à 14:27:43  profilanswer
 

blackgoddess a écrit :

bin oui puis passage d'un pointeur pas initialisé, donc la lecture de var_Cstring[i] devrait faire une access violation :|


J'ai aucun moyen de vérifier que le pointeur ait été alloué ou non, puisque c'est fait dans la dll. Normalement, si il n'y a pas besoin d'allouer ce pointeur (car pas de "dépendences", bref, passons) alors la fonction n'est pas déclarée dans le dll. Si elle l'est, le pointeur est forcément allouer.
 
Dans le code de la Dll, ça donne ça :
 

Code :
  1. extern "C" int __stdcall WE_GetModuleDependencies(TCsString *&module)
  2. {
  3.    module = new TCsString[2];
  4.    module[0] = "eMail";
  5.    return 0;
  6. }


Message édité par godbout le 03-11-2005 à 14:28:45
n°1237527
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:27:43  profilanswer
 

oui stp :)


---------------
-( BlackGoddess )-
n°1237531
godbout
Génial.
Posté le 03-11-2005 à 14:29:15  profilanswer
 

[C++ Error] EX_TWB_Extension.cpp(98): E2093 'operator!' not implemented in type 'TCsString' for arguments of the same type
 
ou  
 
[C++ Error] EX_TWB_Extension.cpp(98): E2094 'operator!=' not implemented in type 'TCsString' for arguments of type 'int'
 
Selon le choix utilisé :D


Message édité par godbout le 03-11-2005 à 14:29:59
n°1237537
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:32:08  profilanswer
 

godbout a écrit :

Code :
  1. TCsString* var_CsString;
  2.              lpfnWE_GetModuleDependencies( var_CsString );
  3.                int i = 0;
  4.                while ( (var_CsString[i] == NULL) == false )
  5.                {
  6.                 Dependencies->Add( AnsiString( var_CsString[i].c_str() ) );
  7.                   i++;
  8.                }




 
tu as l'enlevé l'* donc ?


---------------
-( BlackGoddess )-
n°1237540
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:32:45  profilanswer
 

oulala autant pour moi je craque completement ^^
j'ai rien dit :p


---------------
-( BlackGoddess )-
n°1237543
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:33:49  profilanswer
 

n'empeche que jcomprends quand meme pas comment ca passe dedans a l'execution sans planter :p mais vu que apparement aujourd'hui je suis pas réveillé, spas grave je comprendrais une autre fois ^^


---------------
-( BlackGoddess )-
n°1237548
godbout
Génial.
Posté le 03-11-2005 à 14:37:05  profilanswer
 

T'avais pas vu le tableau ? :D
 
Je sais que c'est pas top hein, mais j'ai pas d'autres choix [:spamafote]
Pour être un peu pouet, j'vais pas faire de la glace saveur fraise avec un kilo de merde dans le bac [:god]

n°1237551
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:39:03  profilanswer
 

oui j'avais craqué sur le tableau :p
mais jvois toujours pas ou il est alloué.


---------------
-( BlackGoddess )-
n°1237553
godbout
Génial.
Posté le 03-11-2005 à 14:39:15  profilanswer
 

blackgoddess a écrit :

n'empeche que jcomprends quand meme pas comment ca passe dedans a l'execution sans planter :p mais vu que apparement aujourd'hui je suis pas réveillé, spas grave je comprendrais une autre fois ^^


Ben regarde le code à l'intérieur de la dll...
Si j'ai besoin d'un élement, j'alloue un talbeau de 2, je remplis que le premier item. Le deuxième est initialisé à NULL. Ensuite tu parcours le talbeau jusqu'à ce que tu trouves NULL dans une case [:dawa]
Si y a pas besoin de remplir ce tableau, y a pas de déclaration de fonction, donc je passe jamais dans le parse du tableau.

n°1237562
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 14:44:02  profilanswer
 

la valeur du pointeur (l'adresse elle-même) sera pas modifié, le pointeur etant passé par valeur à la fonction, donc ton pointeur sera toujours flottant, c'est pour ca que je comprends pas comment ca fait pour fonctionner :p


---------------
-( BlackGoddess )-
n°1237579
godbout
Génial.
Posté le 03-11-2005 à 14:53:40  profilanswer
 

t'es sûr que c'est par valeur et non par référence? :D
Ou alors c'est moi qui suis out [:ocube]

n°1237599
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 15:08:49  profilanswer
 

bin ... il me semble bien ... mais bon vu les bêtises que j'ai dite tout à l'heure je vais pas te dire que j'en suis absolument sur :p


---------------
-( BlackGoddess )-
n°1237612
godbout
Génial.
Posté le 03-11-2005 à 15:17:24  profilanswer
 

Code :
  1. extern "C" int __stdcall WE_GetModuleDependencies(TCsString *& module)


 
Pointeur sur référence non?

Message cité 1 fois
Message édité par godbout le 03-11-2005 à 15:18:04
n°1237627
blackgodde​ss
vive le troll !
Posté le 03-11-2005 à 15:25:10  profilanswer
 

il me semblait que les références n'existaient pas en C. Une fois de plus, je retourne dormir donc, et j'arrête de te faire perdre ton temps avec mes salades.


---------------
-( BlackGoddess )-
n°1237642
godbout
Génial.
Posté le 03-11-2005 à 15:31:17  profilanswer
 

Ah ben j'en savais rien :D
Pis bon là c'est du C++ :sol:
 
Mais bon, ça roule, ça me fait des révisions, enfin même plus des nouveaux acquis (méga honte [:god])

n°1237766
chrisbk
-
Posté le 03-11-2005 à 16:38:54  profilanswer
 

godbout a écrit :

Code :
  1. extern "C" int __stdcall WE_GetModuleDependencies(TCsString *& module)


 
Pointeur sur référence non?


 
reference sur pointeur, pointeur sur reference est illégal

n°1237769
chrisbk
-
Posté le 03-11-2005 à 16:39:23  profilanswer
 

blackgoddess a écrit :

il me semblait que les références n'existaient pas en C. Une fois de plus, je retourne dormir donc, et j'arrête de te faire perdre ton temps avec mes salades.


 
ca existe pas, tout va bien [:dawao]

n°1237801
godbout
Génial.
Posté le 03-11-2005 à 16:53:52  profilanswer
 

chrisbk a écrit :


reference sur pointeur, pointeur sur reference est illégal


:ouch: [:plat00n]

n°1237813
chrisbk
-
Posté le 03-11-2005 à 17:01:55  profilanswer
 

[:franck75] (ca impressione vachement les gonzesses, en plus)

n°1237819
godbout
Génial.
Posté le 03-11-2005 à 17:06:12  profilanswer
 

J'en doute pas une seule seconde [:dawao]
 
Sinon, un ZeroMemory sur une structure cucu, c'est bon hein ? [:god]

n°1237829
chrisbk
-
Posté le 03-11-2005 à 17:09:17  profilanswer
 

ouais [:dawao]
 
(sauf si ta structure hérite d'un truc ou contient des fonctions virtuelles)
 
(si vraiment elle est cucu ca passe)

n°1238089
godbout
Génial.
Posté le 03-11-2005 à 20:13:52  profilanswer
 

Ouais, c'est une structure cucue, MENUITEMINFO, le truc de base que tout le monde maitrise à peu près [:dawao]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
Classes[C++] Probleme avec la stl et les classes templates
[Résolu] Expressions régulières et classesles classes Date et Timestamp
APPLET embarquant des classes nativesClasses, Vecteurs et Tri...
Design applicatif & methodes statiques[C#] Problème d'instanciation de classes et usage de la class Debug
[Visual C++] Classes filles de CExceptionprob acces membres de classes pour fichier inclus en path absolu
Plus de sujets relatifs à : [C++] Classes, méthodes et DLLs


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