佚名通过本文主要向大家介绍了
关于动态释放COM组件(DLL模式)请教,各位大侠指点指点哈,小弟感激中。。。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于动态释放COM组件(DLL模式)请教,各位大侠指点指点哈,小弟感激中。。。
描述:
解决方案1:
描述:
我通过CoInitialize动态加载了一个组件,但是我调用了CoUninitialize后,我想不关闭嗲用组件的进程,在VC开发环境中修改组件部分代码然后再调用,结果编译不过去,系统报错:
LINK : fatal error LNK1168: cannot open XXX.dll for writing
Error executing link.exe.
这个是为什么呢?我不是已经调用了CoUninitialize了吗?为什么一定要关闭组件调用进程才可以编译呢?如果希望不关闭组件进程动态更新组件,应该如何实现呢?
请各位大侠指点哈,小弟非常感谢。
解决方案1:
不关闭组件进程动态更新组件
那你的看看com库是怎么做的了
偶也觉得可以实现
但是是否释放dll,跟CoUninitialize好像没什么关系
你试试调用CoFreeUnusedLibraries可以不可以?
当然,在这之前要释放组件的一切引用
这个问题有意思,我想你在作动态更新一类的程序。我用的一个软件是杀死自己(关闭自身进程),然后重新自己启动。
解决方案4: 必须关闭才能更新吧。
这应该类似于一个文件在被某程序打开后必须等到程序关闭才能删除是一个道理。