[out]int* 和 [in]int* 有什么区别? 狂急!!!!!!!!! [out]BSTR为什么不对? 要[out]BSTR*才能通过编译。ActiveX 函数参数 [in]BSTR 到client就变lpcstr [out]BSTR*就不边为什么?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [out]属性的参数要求COM分配内存,client去释放内存![in]属性的参数要求client分配内存,client去释放内存! 楼上能不能跟我讲讲[out]BSTR为什么不对? 要[out]BSTR*才能通过编译。? BSTR实际上是指针(可以看.h文件中定义的BSTR)。因此,如果不是BSTR*,显然不能返回在被调函数中分配的BSTR的值。参考以下代码:void rtvstr(char* p){ p = new char(30); strcpy(p, "1234");}void main(){ char* p; rtvstr(p); printf("%s", p);}能得到正确结果吗? 一般作为输出的属性应该是指针形的。所以[out]BSTR不对,而[out]BSTR*才是对的。 这是COM接口方法的参数方向属性问题。1、当对象和客户在同一环境中时,它们拥有共用一个堆栈帧,也就是客户进行COM对象接口调用时,要提供[out]参数的地址,这样被调用的对象方法才能写入得到的结果数据,返回给客户;2、当它们处于不同的执行环境中时,需要截取器进行方法及其参数的传递,所传递的参数是那些方向性为[in]的参数。这些参数到达存根后,存根负责创建一个堆栈帧,并用传递来的[in]参数值进行初始化,调用对象的方法,运行,得到结果,放回到[out]参数的地址中,再由存根经列集,特殊管道传输会代理,代理散集,将结果放回到客户提供的[out]参数的地址空间中,于是客户得到结果。所以无论那种情况,都需要提供[out]参数的地址,即指针的指针。 零分, 求人帮助,,,看有没雷锋... OpenGL拾取问题,请高手指点 求《Visual C++/Turbo C串口通信编程实践》源代码 国庆散分帖! 在VC中,我想编个小游戏,它能够利用键盘上的方向键(即上下左右键),怎样编? 关于在Dialog资源中,输入韩语 高分请问:编写activex控件时为什么无法进行调试(debug)?? 一个读写内存问题 请教怎样在显示屏上显示动态消息?先谢了! 有谁做过MSMQ,请网上有没有专门讲MSMQ配置的资料 关于如何软件有支持自动更新的功能?up有分 如何从数据库中读出指定数目的数据?
[in]属性的参数要求client分配内存,client去释放内存!
[out]BSTR为什么不对? 要[out]BSTR*才能通过编译。?
参考以下代码:void rtvstr(char* p)
{
p = new char(30);
strcpy(p, "1234");
}void main()
{
char* p;
rtvstr(p);
printf("%s", p);
}能得到正确结果吗?
1、当对象和客户在同一环境中时,它们拥有共用一个堆栈帧,也就是客户进行COM对象接口调用时,要提供[out]参数的地址,这样被调用的对象方法才能写入得到的结果数据,返回给客户;
2、当它们处于不同的执行环境中时,需要截取器进行方法及其参数的传递,所传递的参数是那些方向性为[in]的参数。这些参数到达存根后,存根负责创建一个堆栈帧,并用传递来的[in]参数值进行初始化,调用对象的方法,运行,得到结果,放回到[out]参数的地址中,再由存根经列集,特殊管道传输会代理,代理散集,将结果放回到客户提供的[out]参数的地址空间中,于是客户得到结果。所以无论那种情况,都需要提供[out]参数的地址,即指针的指针。