Avoir une fonction native qui renvoie une chaîne (comme char *) par paramètre, quelle serait la meilleure option entre pré-allouer le char * via le code managé et le passer par paramètre et allouer le char * à partir du code natif, puis le libérer de C#?Comment marshaler une chaîne de sortie du code natif
pourriez-vous m'expliquer pourquoi devrais-je utiliser l'un sur l'autre? Veuillez répondre uniquement s'il existe une raison spécifique de préférer une solution à l'autre. Si, au contraire, les deux solutions sont correctes, ma question peut être considérée comme une réponse. En prime, j'aimerais savoir comment je devrais allouer la variable char * de C# dans le premier cas (en utilisant la classe Marshal ou avec un simple nouveau ou avec un StringBuilder comme je le vois souvent dans d'autres réponses?) Et comment je devrais supprimer le pointeur si à la place je crée la variable char * à partir du code natif dans le second cas.
Supprimer l'original s'il vous plaît. J'ai effectivement marqué pour supprimer hier, quelqu'un doit l'avoir restauré! Aussi l'original n'a pas eu de réponse, juste un commentaire – sebas
@Flexo: La dupe a depuis été supprimée, et cette question, bien que quelque peu "douce", semble être sur le sujet et a une réponse décente. Pourriez-vous envisager de le rouvrir? –