您的位置:首页 > 其它

同一进程中的多模块之间非正常途径获取的指针,释放时VS会报错。

2011-01-20 23:53 232 查看
最近在做单进程中多个IE窗口页面之间通讯的东东。

其中关键技术就是通过在IE页面中嵌入ACTIVEX,由ACTIVEX接收页面的输入并将输入的内容通过“共享”内存报告给其他页面中的ACTIVEX从而触发其他页面对数据的接收。由于ACTIVEX和页面都在同一个进程中,所以就没有使用WINDOWS的内存映射文件等进程间共享的机制,代之以在主程序中malloc了一块内存,并将该内存指针保存在本地文件中,再在ACTIVEX初始化时从该文件读取指针值,这样一样能达到访问同一块内存的目的。

经验证,若在ACTIVEX中对获取的指针进行free,VC就会报异常,程序会挂掉。

若在同一模块中进行上述操作则不会有这种问题。

结论:上述方法是危险的,不到不得已最好不要用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: