以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  重新编译COM组件必须重启金字塔?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=154847)

--  作者:分析者
--  发布时间:2017/6/7 22:51:28
--  重新编译COM组件必须重启金字塔?

我是通过C#编写COM组件的,每次修改C#源代码并重新编译后,要想使新的COM组件生效,必须重启金字塔并重新注册COM组件,否则金字塔还是执行原来的COM组件,这样挺麻烦的,很影响我编写代码的效率。

请问,有什么办法可以不重启金字塔,也可以直接使用新编译出来的COM组件(DLL文件)。

 


--  作者:王锋
--  发布时间:2017/6/8 9:11:51
--  

你的COM通过VBA调用的?如果是的话无需重启金字塔的,只要停止VBA引擎再重新开启应该就可以的。但是前提条件是你要调用完DLL后,及时释放掉


--  作者:分析者
--  发布时间:2017/6/8 14:23:13
--  
“调用完DLL后,及时释放掉”的语句就是“set add = nothing”吗?
--  作者:王锋
--  发布时间:2017/6/8 14:52:02
--  

是的


--  作者:分析者
--  发布时间:2017/6/8 16:10:56
--  
发现还是不行啊,VBS程序最后执行了set add = nothing,但还是必须重启金字塔才能使用新编译的COM组件。
--  作者:王锋
--  发布时间:2017/6/8 16:15:42
--  
有没有停止VBA引擎
--  作者:分析者
--  发布时间:2017/6/8 16:30:34
--  
有的啊
--  作者:王锋
--  发布时间:2017/6/8 16:34:20
--  

那就没法了


--  作者:pel46585
--  发布时间:2017/6/14 17:19:34
--  
查看你的com组件,是否在Set add = Nothing后,不能正确退出.比如,你的com组件有不可结束的代码在里面等.
可以在vb或vba环境下,测试这个Set add = Nothing,测试你的com组件
[此贴子已经被作者于2017/6/14 17:20:33编辑过]