J'ai la fonction suivante, écrite dans le cadre d'une autre classe en C:Comment puis-je marshaler ce paramètre de tableau de caractères de C à une chaîne en C#?
int example(char *remoteServerName)
{
if (doSomething(job))
return getError(job);
if (job->server != NULL) {
int length = strlen(jobPtr->server->name); // name is a char * of length 1025
remoteServerName = malloc (length * sizeof(char));
strncpy(remoteServerName, jobPtr->server->name, length);
}
return 0;
}
Comment puis-je obtenir le remoteServerName
retour de celui-ci? J'ai essayé ce qui suit:
[DllImport("example.dll")]
public static extern int example(StringBuilder remoteServerName);
var x = new StringBuilder();
example(x);
Console.WriteLine(x.ToString());
Mais la chaîne est toujours vide.
C ne supporte pas les classes. – Olaf