老师,你好。我在后台VBA程序中使用了自定义的DynamicActive控件(名称为UserWrap),并在控件中使用了UserWrap.register方法注册了一个自定义的dll文件,但是会报错说无法加载该dll,请问应该将dll文件放在金字塔目录的什么位置可以解决这个问题?
建议您把vba代码贴过来我们这边运行看一下哦,不然不好猜测问题的
您大概的意思是不是你自己做了个DLL控件,然后想在VBA代码中调用你自己的做的DLL控件?
我们建立控件的格式是这样的。其中user32.dll文件应该放在金字塔目录下的什么地方,才可以保证正常读取?(放在金字塔根目录或者fml目录下会显示报错为“1025:cound not find or load the dll”)
Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register
"user32.dll","Showstr","i=s","f=s", "r=f"
user32.dll是系统的DLL文件,这个是不需要你去做特别处理的。
参考范例
Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register "user32.dll","FindWindow","i=ss","f=s", "r=l"
WindowHandle = Wrap.FindWindow("", "无标题 - 记事本")
If WindowHandle=0 then
MsgBox "发现窗口"
Else
MsgBox "没发现"
End If
我们上述描述的dll是自己编写的,不是系统自定义的dll(上述描述中使用user32的名字只是为了方便),为了避免误解,我们不妨叫它name1.dll,如果有这样的dll文件,上述问题怎么解决。
这个系统dll模式你自己写的话,我们有更简单便捷的调用方式,参考
利用金字塔的VBA与C++的混合编程来实现复杂的二次开发及交易功能
http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11505
好的,我们可能在dll本地注册段出了一些问题,感谢您的帮助。