Lire char* a dans Dll int _stdcall runappli(char* a) [Résolu]

Signaler
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007
-
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007
-
Je realise une Dll c++, pour être lue par VB du style :

int _stdcall runappli(char* a, char* b,int c)

La Dll se lance bien mais je voudrais être sur que a, b et c sont lu, comment puis je voir les données dans une message box, afin de connaitre les valeurs de a b et c ?

13 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
comme tu sembles utiliser unicode alors les params ne peuvent pas être char*, remplace par PCTSTR.
Le reste est MFC alors je passe mon chemin.

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
ben oui, unicode mets les chaines sur 2 octets par caractère, incompatible avec char*.

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
ben comme d'hab: MessageBox()

ciao...
BruNews, MVP VC++
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
bah oui... le seul truc c'est que MessageBox ne peut prendre qu'une
chaine en param pas des entiers donc tu dois faire une chaine qui les
contienne mais sinon...

_______________________

Omnia vincit labor improbus
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

heu.....non mais ma question n'est pas si stupide, je sais faire une messagebox, mais je n'arrive pas à voir mes resultats. Donc deux posssibilités :

Soit je n'arrive pas à envoyer mes données à ma dll soit c'est ma messagebox qui est mal faite. Donc ma question etait comment rendre une messagebox qui lit a ? Me donner exemple avec code serait bienvenue.

En faite a est un lien vers une image = "/mes documents/A.bmp".
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
int _stdcall runappli(char* a, char* b,int c)
{
MessageBox(GetFocus(), a, "Param a", 0);
}

je ne vois vraiment pas ce que tu veux.

ciao...
BruNews, MVP VC++
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
a propos, dsl fwdavy pour mon irruption dans ton thread, ya une
différence entre _stdcall et __stdcall ? idem pour __asm, __try, ...
pourquoi il y a 2 underscores ?

_______________________

Omnia vincit labor improbus
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
Je crois que avec 2 __ c'est 'specific MS compiler' je crois.

ciao...
BruNews, MVP VC++
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
hééé mais ca veut dire que faut un code pour chaque compilo, meme sous
le meme OS ??? rah ils abusent c'est qd meme pas si dur de faire un
truc ANSI qd on sait faire un compilo comme ca.... en tout cas j'essaye
ca de suite avec dev-c++

_______________________

Omnia vincit labor improbus
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
devcpp utilise bien un sabir d'asm lui aussi alors que MS (comme Borland) suit la syntaxe standard Intel, 1 point partout.

ciao...
BruNews, MVP VC++
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

Merci pour vos reponse, mais je developpe en Evc (evidement vous pouviez pas le devinner). Mais laissons tomber les messagebox en faite mon reel problême est celuis-ci :


int _stdcall runappli(char* a, char* b,int c)
{


// a [file://temp//TT.bmp \\temp\\TT.bmp] ; b [file://temp//tt.jpg \\temp\\tt.jpg] ;


CBitmap bmp;

bmp.Attach(SHLoadDIBitmap(TEXT("[file://temp//TT.bmp \\temp\\TT.bmp]")));
ConvertJPG(b, c, (HBITMAP)bmp);
bool bSuccess = mPrint::PrintJob(TEXT("[file://temp//tt.jpg \\temp\\tt.jpg]"));
return (0);


}



je cherche a remplacer TEXT("[file://temp//TT.bmp \\temp\\TT.bmp]") par a et
TEXT("[file://temp//tt.jpg \\temp\\tt.jpg]") par b, mais pour le moment sans succes.
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

PCTSTR ?! Kesaquo ? tu veux dire que j'essaye en fesant int _stdcall runappli(PCTSTR a, char* b,int c).
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

Merci BruNews PCTSTR marche parfaitement. :))