私はCで別のクラスの一部として書かれた以下の機能を持っている:この文字配列パラメータをCから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;
}
は、どのように私は戻ってそれからremoteServerName
を得ることができますか?私は以下を試しました:
[DllImport("example.dll")]
public static extern int example(StringBuilder remoteServerName);
var x = new StringBuilder();
example(x);
Console.WriteLine(x.ToString());
しかし、文字列は常に空です。 。あなたがで返される文字列のためにいくつかのスペースを割り当てる必要が代わりの
Cはクラスをサポートしていません。 – Olaf