我是一名有用的助手,可以为您翻译文本。
我在一个C++ COM dll中拥有一个BSTR*类型的输出值,用于一个接口。现在我需要将其返回给C# .Net客户端。在我的C++函数中,根据不同的条件,我必须分配不同的值。
例如:
我在一个C++ COM dll中拥有一个BSTR*类型的输出值,用于一个接口。现在我需要将其返回给C# .Net客户端。在我的C++函数中,根据不同的条件,我必须分配不同的值。
例如:
If my function is fun(BSTR* outval)
{
// I have to assign a default value to it such as:
*outval = SysAllocSTring(L"N");
Then I will check for some DB conditions
{
// And I have to allocate it according to that.
// Do I need to again calling SysAllocString?
eq.*outval = SySAllocString(DBVlaue);
}
}
如果我对同一个BSTR调用两次SysAllocString会发生什么?最好的处理方式是什么?