(高手请进)关于BSTR类型
在COM中一属性:BSTR CGrgXFSCashAcceptorCtrl::GetTest()
{
CString strResult = "TEST";
return strResult.AllocSysString();
}
1.在C#中是否需要释放内存????
2.如需要释放,怎么释放?(有没如SysFreeString的东东?)
3.如不需要释放. 在C#中启一线程,在线程中:
while (true)
{
string str = GetTest();
System.Threading.Thread.Sleep(1);
}
内存会一直增加.
疑问:是否增加到一定程度系统会自行释放???
--------------------编程问答-------------------- 使用 .NET 的 COM 包装器生成代码。 --------------------编程问答-------------------- caozhy 谢谢你的回复.
使用 .NET 的 COM 包装器生成代码。
能详细点么?具体怎么弄? --------------------编程问答-------------------- C#可以自动释放的是托管资源。非托管资源不能自动释放。
AllocSysString需要用函数FreeSysString手动释放
http://msdn.microsoft.com/en-us/library/za1865s1(v=vs.71).aspx --------------------编程问答-------------------- ynb119 谢谢你的回复
C#可以自动释放的是托管资源。非托管资源不能自动释放。
AllocSysString需要用函数FreeSysString手动释放
你的意思是需要在C#中手动释放
请问C#中有没有FreeSysString这样的东东,如何使用? --------------------编程问答--------------------
--------------------编程问答-------------------- Marshal.FreeBSTR(p);
System.Runtime.InteropServices.Marshal.FreeBSTR
Marshal.FreeHGlobal(p);
在哪个函数(或类)中申请的就在那个函数(或类)中释放
补充:.NET技术 , C#