Comment passer des chaînes de C # à C ++ (et de C ++ à C #) à l'aide de DLLImport?
J'ai essayé d'envoyer une chaîne de caractères à/C#/C++ pour une longue période, mais n'a pas réussi à le faire fonctionner encore ...
Donc ma question est simple :
Personne ne sait d'une certaine façon pour envoyer une chaîne de caractères à partir de C# C++ et de C++ C# ?
(Un exemple de code serait utile)
source d'informationauteur Jsncrdnl
Vous devez vous connecter pour publier un commentaire.
Passant de chaîne à partir de C# C++ doit être simple. PInvoke sera de gérer la conversion pour vous.
Geting chaîne à partir de C++ C# peut être fait à l'aide d'un StringBuilder. Vous avez besoin pour obtenir la longueur de la chaîne dans le but de créer un buffer de la taille correcte.
Voici deux exemples bien connus de l'API Win32:
dans votre code c:
.net:
utilisation:
Beaucoup de fonctions qui sont rencontrées dans l'API Windows de chaîne ou de type " chaîne de paramètres. Le problème avec l'aide du type de données string pour ces paramètres, c'est que le type de données chaîne .NET est immuable une fois créés, de sorte que le StringBuilder type de données est le bon choix ici. Pour un exemple d'examiner la fonction de l'API GetTempPath()
Windows API définition
.NET prototype
Utilisation