|
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. |
| |
| |
| | | |
|
| | | | |
| | |
|