PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Utilisation DLL EVC Problème retour Chaine + int
Utilisation DLL EVC Problème retour Chaine + int
Débuté par xpacotte, 09 mar. 2005 15:39 - 2 réponses
Posté le 09 mars 2005 - 15:39
Bonjour,

Je travaille sous Gotive en Wince.net4.2
Depuis mon programme Windev, j'appelle des fonctions depuis une dll que nous avons créee en evc++ 4.0.
Une fonction qui pose problème: c'est la fonction dont je passe 3 paramètres, 2 entiers et 1 chaine. Or ces 3 paramètres sont des valeurs de retour.
Quand ma chaine de retour est vide, mes 2 valeurs int dans Windev sont bonnes, mais si je retourne une chaine non vide, la chaine dans Windev est Ok, mais les 2 int ne sont pas bons.

Pourquoi?
Cela est il un problème Windev, de mon programme evc...?
J'ai fait le test en c#, je n'ai pas le problème.

Cette demande est assez urgente.

Protocole de reproduction :
Programme windev:
----------------------------------------------------
iNomOperateur est un entier
iEtatReseau est un entier
iQualiteSignal est un entier
Resultat est une entier
Resultat = AppelDLL32(kNAME_DLL, "GSMInfosSignal", &iNomOperateur, &iEtatReseau, &iQualiteSignal)
ztNomOperateur = ChaîneRécupère(&iNomOperateur,crAdresseUNICODE)
ztEtatReseau = iEtatReseau
ztQualiteSignal = iQualiteSignal
----------------------------------------------------
programme EVC
----------------------------------------------------
bool GSMInfosSignal(TCHAR nomOperateur[100], int etatReseau[1], int qualiteSignal[1])
{
nOperateur = Gotive::Gsm::GetOperatorName();
etatReseau[0] = Gotive::Gsm::GetNetworkStatus();
qualiteSignal[0] = Gotive ::Gsm::GetSignalQuality();
wcscpy(nomOperateur, nOperateur)
return true;
}



Cordialement
Posté le 09 mars 2005 - 15:47
Met ta chaine en dernière position (suggestion au pif)

"Xavier PACOTTE" <xpacotte@pageup.fr> a écrit dans le message de news:
422ef186$1@news.pcsoft.fr...


Bonjour,

Je travaille sous Gotive en Wince.net4.2
Depuis mon programme Windev, j'appelle des fonctions depuis une dll que
nous avons créee en evc++ 4.0.
Une fonction qui pose problème: c'est la fonction dont je passe 3
paramètres, 2 entiers et 1 chaine. Or ces 3 paramètres sont des valeurs
de retour.
Quand ma chaine de retour est vide, mes 2 valeurs int dans Windev sont
bonnes, mais si je retourne une chaine non vide, la chaine dans Windev est
Ok, mais les 2 int ne sont pas bons.

Pourquoi?
Cela est il un problème Windev, de mon programme evc...?
J'ai fait le test en c#, je n'ai pas le problème.

Cette demande est assez urgente.

Protocole de reproduction :
Programme windev:
----------------------------------------------------
iNomOperateur est un entier
iEtatReseau est un entier
iQualiteSignal est un entier
Resultat est une entier
Resultat = AppelDLL32(kNAME_DLL, "GSMInfosSignal", &iNomOperateur,
&iEtatReseau, &iQualiteSignal)
ztNomOperateur = ChaîneRécupère(&iNomOperateur,crAdresseUNICODE)
ztEtatReseau = iEtatReseau
ztQualiteSignal = iQualiteSignal
----------------------------------------------------
programme EVC
----------------------------------------------------
bool GSMInfosSignal(TCHAR nomOperateur[100], int etatReseau[1], int
qualiteSignal[1])
{
nOperateur = Gotive::Gsm::GetOperatorName();
etatReseau[0] = Gotive::Gsm::GetNetworkStatus();
qualiteSignal[0] = Gotive ::Gsm::GetSignalQuality();
wcscpy(nomOperateur, nOperateur)
return true;
}



Cordialement

Posté le 09 mars 2005 - 18:38
J'ai déjà essayé, meme problème.