Perte de données à la sortie d'une DLL
Bonjour,
Voici un problème que je n'arrive pas à fixer qui va sans aucun doute être évident pour vous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
extern "C" DLL1 const wchar_t * ZLA(const char * pNUMBER) // (par exemple 123456)
char RESULT[30];
RESULT[0]='A';
RESULT[1]='B';
RESULT[2]='C';
///////////////////////////////
// Le problème est ici
RESULT[3] = pNUMBER [0];
RESULT[4] = pNUMBER [1];
RESULT[5] = pNUMBER [2];
RESULT[6] = pNUMBER [3];
RESULT[7] = pNUMBER [4];
RESULT[8] = pNUMBER [5];
//////////////////////////////
RESULT[9] = 'Y';
RESULT[10] ='Z';
const char *pS = RESULT;
size_t size2 = sizeof(RESULT) + 1;
wchar_t* wcRESULT = new wchar_t[size2];
size_t outSize;
mbstowcs_s(&outSize, wcRESULT, size2, pS, size2 - 1); |
En debug, je vois ABC123456YZ << c'est ce que j'attends.
Mais lorsque ma valeur arrive dans mon application tierce, je n'ai plus que ABC1
Si je place des valeurs en dur
RESULT[3] = '1';
RESULT[4] = '2';
RESULT[5] = '3'
RESULT[6] = '4'
RESULT[7] = '5'
RESULT[8] = '6';
J'ai bien : ABC123456YZ à l'extérieur. J'ai également testé d'autres méthodes pour récupérer les valeurs en pensant qu'il y a peut être destruction des données et donc perte des valeurs si la donnée était passée en référence et non en valeur.
Merci par avance !