以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 金字塔VBA调用外部DLL出错如何处理? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=84716) |
-- 作者:长征万里 -- 发布时间:2015/9/3 21:37:05 -- 金字塔VBA调用外部DLL出错如何处理? 我做了一个DLL文件,主要功能是将在金字塔VBA里的一些变量数据传到DLL文件,经过DLL文件内部的计算,然后再将结果传回VBA。金字塔代码如下: Sub APPLICATION_VBAStart() Set Wrap = CreateObject("ABC.HX") End Sub 其中:DLL文件原来是用VB6.0写的,文件名是ABC.DLL,类名是HX。 以前在金字塔3.53版本运行没有任何问题,非常的顺畅。但是到了现在升级到了3.63版本,就不行了,金字塔最后直接崩溃了。 经过咨询客服人员,说贵公司的软件采用新的平台重新编译了,分了32位和64位,DLL文件也需要用新平台编译分32位和64位。 我将原来的文件全部移植到了VB.NET 2010,分了32位和64位。而且经过测试也通过了。 但是到了金字塔后,提示: 编译器错误‘429’,ActiveX部件不能创建对象“ABC.HX”。 请问:如何处理这种问题,毛病可能出现在哪里? 其他同学有无类似情况,不会金字塔有BUG吧?
|
-- 作者:马良 -- 发布时间:2015/9/4 10:03:29 -- 首先你要确定金字塔平台是否是你升级到64位后出现的问题 |
-- 作者:长征万里 -- 发布时间:2015/9/4 10:15:34 -- 金字塔由3.53自动升级到3.63,以及安装的32位3.63版本、64位3.63版本全部不行。 即3.53能够支持,现在到了3.63不管是32位或者64位都不行。 我用VB2010写了最简单的DLL文件,在金字塔里用Set Wrap = CreateObject("ABC.HX")调用也是不行。 有谁用过VBA调用DLL文件吗?如何解决的。请指点!
|
-- 作者:马良 -- 发布时间:2015/9/4 10:32:24 -- 你可以试试在32位下的Excel的vba环境下调用你的这个32位的dll看能否成功 |
-- 作者:长征万里 -- 发布时间:2015/9/4 11:14:08 -- 有谁用过Set Wrap = CreateObject("***.**")这条语句,现在还能用吗? |
-- 作者:王锋 -- 发布时间:2015/9/4 12:39:43 -- Set Wrap = CreateObject("***.** 都不成功的话,是跟金字塔平台没关系的,你好好检查一下你的DLL是否是有问题,或者是没有注册,或者注册的路径有变化了 |
-- 作者:长征万里 -- 发布时间:2015/9/5 9:36:17 -- 问题已经解决了,谢谢两位老师。Set Wrap = CreateObject没有问题,非常好! 祝愿金字塔越做越好!越来越强大!
|