假設我有x.dll在C++中,看起來像這樣如何指定是否取得編組字符串的所有權?
MYDLLEXPORT
const char* f1()
{
return "Hello";
}
MYDLLEXPORT
const char* f2()
{
char* p = new char[20];
strcpy(p, "Hello");
return p;
}
現在,假如我想用這個在C#
[DllImport("x.dll")]
public static extern string f1();
[DllImport("x.dll")]
public static extern string f2();
有沒有辦法告訴CLR採取強烈的主人翁從f2返回的字符串,但不是f1?問題在於,從f1返回的字符串最終會被GC釋放,刪除或其他任何事實,這同樣不利於從f2返回的字符串。希望問題清楚。在此先感謝
謝謝。抱歉,我無法對您提供任何幫助(達到每日限額),您提供的鏈接就是我需要的! – 2011-03-08 21:41:27
@阿門:你明天總是可以回來......;) – 2011-03-08 23:05:51