2011-03-07 66 views
0

我試圖通過RPC傳遞一個的std :: string,但我得到了以下錯誤:是否可以通過Microsoft RPC傳遞std :: string?

interface TestInterface 
{ 
    unsigned int HelloUser([in] const string user); 
} 

這是可能的:從代碼

MIDL2025: syntax error: expecting a type specification or a storage specifer or a type qualifier near "string"

提取物?

回答

1

您必須使用BSTR。另外,沒有const。通過將參數指定爲[in],已經知道被調用者不會修改該字符串,即使修改了該字符串,它也不會被封送回調用者。

_bstr_t類將幫助轉換。請注意,BSTR始終基於WCHAR,它是16位。因此,請使用std::wstring

+1

您還應該注意到在使用SysAllocString()傳遞它們之前需要分配這些字符串。 看看這個:http://msdn.microsoft.com/en-us/library/ms221069.aspx – TCS 2011-03-07 06:41:53

相關問題