【发布时间】:2011-09-09 12:40:48
【问题描述】:
我正在尝试进行 RPC 调用,该调用从 RPC 服务器请求 2 个数字和一个字符串,IDL 如下所示:
void GetCurrentStatus([in] handle_t hBinding, [out, ref] DWORD *dwRef1, [out, ref] DWORD *dwRef2, UINT *nLength, [out, size_is(, *nLength)] LPWSTR *pszName);
在服务器端调用中我这样做:
// name = std::wstring
*pszName = (wchar_t*)midl_user_allocate(name.length()+1 * sizeof(wchar_t));
_tcscpy(*pszName, name.c_str());
*nLength = name.length();
但是任何从客户端调用的尝试都不会返回错误The array bounds are invalid.
从 RPC 调用返回字符串的正确方法是什么?
谢谢, J
【问题讨论】:
-
是调用还是返回时出现错误?即
GetCurrentStatus是否实际执行服务器端?