【发布时间】:2015-10-20 09:33:14
【问题描述】:
我对 C++ 很陌生。我创建了我的 C# DLL。我创建了托管 C++ DLL 并在我的 C# 项目中引用它。我想从 C# dll 返回 char* 中的字符串值问题是,我无法将 CComBSTR 转换为 BSTR ?
UINT CHandler::GetData( UINT idx, char* lName)
{
HRESULT hRes= m_p->GetData(idx, CComBSTR(lName));
}
Error: Fehler by CComBSTR(lNmae): 977 IntelliSense: It is no possible conversion of ""ATL::CComBSTR"" in ""BSTR *"" available.
我的 C# 函数有第二个参数,类型为 BSTR*
【问题讨论】:
-
你的成员变量调用了什么GetData函数?
-
这是我的 C# 函数
GetData(int idx, BSTR * lName) -
@Brita 我明白你的问题,请参阅下面的答案。
-
它需要一个指向 BSTR 的指针。所以你只需要创建一个,使用 m_p->GetData(idx, &CComBSTR(lName))。注意 & 运算符。 GetData() 返回后 BSTR 再次被销毁。
-
感谢你这么多用户1,你的答案帮助我