Bonjour,
Voici un problème que je n'arrive pas à fixer qui va sans aucun doute être évident pour vous :
En debug, je vois ABC123456YZ << c'est ce que j'attends.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
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 !
Partager