0
文字列をC#からCOM C++に渡す方法は?私はintのためにして、それは正常に動作しています。文字列の値をC#からC++に戻す
int型の戻り値の型のための私のCOM C++コード:
void ServiceAdapter::GetErrorCode1234()
{
long x;
m_server->GetErrorCodeOnLoginFailure(&x);
//So I get my return code value in x;
}
int型の戻り値の型のための私のC#コード: だから、C#のIAMから、次のように呼び出す:
int GetErrorCodeOnLoginFailure()
{
return 3 //some return code
}
しかし、私は同じことをしている場合Stringを返すために、コードは実行時にクラッシュしています。
ストリングの戻り型のための私のCOM C++コード:
BSTR ServiceAdapter::GetVersion1234()
{
BSTR x = :SysAllocString(CCTIUtils:stringToBSTR(L""));
m_server->GetAdapterVersion(&x); // The code is crashing here.
return x;
}
ストリングの戻り型のための私のC#コード:
ストリングGetAdapterVersion(){戻り "6.4.23"。 }
問題点は何ですか?
GetAdapterVersionを呼び出すと、参照パラメータとして取得するのではなく、文字列が返されます。電話が正しいと確信していますか? –
うん。それがどのように機能するのですか? intのためのその正常な作業 – Sunil
std :: wstring ServiceAdapter :: GetVersion1234()、 なぜstd :: wstringですか?それはBSTRでなければなりませんね。 –