欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 自定义dll文件的加载问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2767人关注过本帖树形打印复制链接

主题:自定义dll文件的加载问题

帅哥哟,离线,有人找我吗?
李润Rex
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
自定义dll文件的加载问题  发帖心情 Post By:2017/2/22 15:31:13 [只看该作者]

老师,你好。我在后台VBA程序中使用了自定义的DynamicActive控件(名称为UserWrap),并在控件中使用了UserWrap.register方法注册了一个自定义的dll文件,但是会报错说无法加载该dll,请问应该将dll文件放在金字塔目录的什么位置可以解决这个问题?

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 16:11:38 [只看该作者]

建议您把vba代码贴过来我们这边运行看一下哦,不然不好猜测问题的


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 16:17:10 [只看该作者]

您大概的意思是不是你自己做了个DLL控件,然后想在VBA代码中调用你自己的做的DLL控件?


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
李润Rex
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/2/22 16:18:34 [只看该作者]

我们建立控件的格式是这样的。其中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" 

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 16:20:24 [只看该作者]

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



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
李润Rex
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/2/22 16:27:01 [只看该作者]

我们上述描述的dll是自己编写的,不是系统自定义的dll(上述描述中使用user32的名字只是为了方便),为了避免误解,我们不妨叫它name1.dll,如果有这样的dll文件,上述问题怎么解决。


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 16:29:51 [只看该作者]

这个系统dll模式你自己写的话,我们有更简单便捷的调用方式,参考

 

利用金字塔的VBA与C++的混合编程来实现复杂的二次开发及交易功能

http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11505



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
李润Rex
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/2/22 16:35:43 [只看该作者]

好的,我们可能在dll本地注册段出了一些问题,感谢您的帮助。

 回到顶部