Bonjour,

Voici un problème que je n'arrive pas à fixer qui va sans aucun doute être évident pour vous :

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);
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 !