我做了一个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吧?
首先你要确定金字塔平台是否是你升级到64位后出现的问题
金字塔由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文件吗?如何解决的。请指点!
你可以试试在32位下的Excel的vba环境下调用你的这个32位的dll看能否成功
有谁用过Set Wrap = CreateObject("***.**")这条语句,现在还能用吗?
Set Wrap = CreateObject("***.** 都不成功的话,是跟金字塔平台没关系的,你好好检查一下你的DLL是否是有问题,或者是没有注册,或者注册的路径有变化了