一个关于RPC返回值的问题!!!

Happyledian 2001-09-06 04:56:47
在我的文件idl中:
//file myrpc.idl
[
uuid(150c18d3-b475-450d-980a-ebeafe2afb07),
version(1.0),
pointer_default(unique)
]
interface myrpc
{
void myfun([in, string] unsigned char *pszIN,
[out] unsigned char *pszOUT);

void Shutdown(void);
}
想根据pszIN来判断用户是否存在,如果存在则pszOUT = "yes",否则为"no".
实现是这样的:
//file myrpcp.c
void myfun(
/* [string][in] */ unsigned char *pszIN,
/* [out] */ unsigned char *pszOUT)
{
printf("Income user is:%s\n",pszIN);
if (!strcmp(pszIN,"wuzhiyong"))
{
strcpy(pszOUT,"yes");
}
else
{
strcpy(pszOUT,"no");
}

printf("Out-->%s\n",pszOUT);
}

但在客户端myrpcC.c中调用:
printf("say %s to server",pszInString);
/* rpc */
myfun(pszInString,pszOutString);
printf("The Server say:%s\n",pszOutString);

但运行结果却是:
客户端
c:\>myrpcc
RpcStringBindingCompose returned 0x0
pszStringBinding = ncacn_np:[\\pipe\\hello]
RpcBindingFromStringBinding returned 0x0
Calling the remote procedure 'myfun'
Print the string 'wuzhiyong' on the server
say wuzhiyong to serverThe Server say:y
RpcStringFree returned 0x0
RpcBindingFree returned 0x0

服务端
c:\>myrpcs
RpcServerUseProtseqEp returned 0x0
RpcServerRegisterIf returned 0x0
Calling RpcServerListen
Income user is:wuzhiyong
Out-->yes

请帮助解答。
...全文
314 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Happyledian 2001-09-07
  • 打赏
  • 举报
回复
wyzegg,能不能给我留下一个通讯地址.mailto :wzy_email@sina.com
Soft21 2001-09-06
  • 打赏
  • 举报
回复
大家好啊,我在等待大家的答案,呵呵!
wyzegg 2001-09-06
  • 打赏
  • 举报
回复
需要指定长度的,不然RPC不知道需要分配多少的内存结果就是一个啦
,一般这种传递都需要再加一个长度的参数的
[in]int size,[out,sizeof(size)] char *p
Happyledian 2001-09-06
  • 打赏
  • 举报
回复
为什么返回的是"y",而不是"yes"呢?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧