关于SAFEARRAY数组的释放问题 在[in], [out], [in, out]这三种情况下SAFEARRAY数组的释放是由谁完成的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 “谁申请,谁释放”,说得好听,但有时根本无法实现,例如[out]时。 [in], [out], [in, out]好像只是给程序员看的吧 COM中规定,如果是用户得到控件分配的内存,则需要用户自己来释放。比如在VB中,我们可以直接给控件一个变量让他填充一个数组;而在控件内部会去分配一个Safearray然后包装成Variant传回去,使用完毕之后,VB回去释放。“谁分配,谁释放”这个是对的,但是在COM中需要转换一下思维了。 好像没有回答问题,对于[in]当然是用户分配并且释放;对于[out]则由控件分配,并且由用户释放;对于[in,out],则需要进行判断,如果用户的数组不是空的,则表示用户只需要这么多数据,如果空间必须要大一些,则应该返回错误让用户知道;如果用户的数组是空的,则由控件分配,并且将其返回给用户,并由用户释放。 COM是在分布式环境运行的,接口的调用是通过代理进行的,不是服务器和客户的直接调用。因而内存的分配和释放是服务器和代理及代理与客户之间的事情。这是需要明确定义操作行为的。我所需要知道的就是这一定义的细节。不过,通过实验我初部有了些头绪。 有人在vs2008上用过windows media player控件吗?有个小小的问题 请教静态链接与动态链接以及debug和release版本的区别? ODBC 查询 excel 数据 关于异常处理 请教一个简单问题 招聘vc程序员10名,3000-8000元不等! 有编过游戏修改器的高手吗? 【求助】读取INI文件,相对路径和绝对路径问题 VS2010默认参数值函数的问题 关于COM+的多机运行 OpenGL坐标 IE切换时ACTIVEX不能快速释放
好像只是给程序员看的吧