Bonjour,
je n'arrive pas à trouver comment concaténer deux LPCSTR avec un caractère entre les deux.
Le but est d'appeler une fonction d'une manière similaire à celle-ci :
Si j'appelle la méthode de cette manière, alors tout fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Toggle(1, 2, 3, 4, 5, 6, "texte1""\xff""texte2");
Maintenant, je reçois les paramètres via une methode qui a cette signature :
et je dois concaténer param6 et param7 en insérant "\xff" entre les deux pour ensuite appeler la méthode "Toggle" qui a la signature suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void SourceToggle( INT32 param0, INT32 param1, INT32 param2, INT32 param3, INT32 param4, INT32 param5, LPCSTR param6, LPCSTR param7, HRESULT &hr )
Ce qui donnerait le pseudo-code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void Toggle(int param0, int param1, int param2, int param3, int param4, int param5, const unsigned char* message)
Malheureusement, ça ne fonctionne évidemment pas et je suis complètement perdu entre les LPCSTR, char * et autres joyeusetés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void SourceToggle( INT32 param0, INT32 param1, INT32 param2, INT32 param3, INT32 param4, INT32 param5, LPCSTR param6, LPCSTR param7, HRESULT &hr ) { Toggle(param0, param1, param2, param3, param4, param5, param6 + "\xff" + param7); }
Sachant qu'en plus je ne peux pas utiliser la fonction strcpy car le compilateur me signale une erreur de type "Do not use".
Pour information, la fonction de haut niveau provient de code managé en C# et tout se passe sur des cartes embarqués en .NET MicroFramework.
Donc, finalement, mon message pourrait se résumer à : AU SECOURS !!!
Partager