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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → thostmduserapi 的冲突问题!

   

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


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

主题:thostmduserapi 的冲突问题!

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


加好友 发短信
等级:论坛游侠 帖子:204 积分:490 威望:0 精华:0 注册:2010/12/16 16:04:39
thostmduserapi 的冲突问题!  发帖心情 Post By:2012/4/10 14:15:21 [只看该作者]

自定义开发了DLL公式,并且有自定义的thostmduserapi.dll和thosttraderapi.dll ,放在FmlDLL文件夹下;

金字塔在调用dll公式时,始终加载了自带根目录下的thosttraderapi文件,那么怎么执行我自己的FmlDLL里面的thosttraderapi文件呢


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


加好友 发短信
等级:金字塔养老院 帖子:509 积分:2425 威望:0 精华:0 注册:2012/3/2 12:50:05
  发帖心情 Post By:2012/4/10 14:32:54 [只看该作者]

楼主参考 金字塔的安装目录有FmlDevelope.zip文件,里面有金字塔编写DLL的技术规范

使用时必须将动态库文件放置在与*.stk文档相同目录下使用.

[此贴子已经被作者于2012-4-10 14:36:43编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:204 积分:490 威望:0 精华:0 注册:2010/12/16 16:04:39
  发帖心情 Post By:2012/4/10 14:46:31 [只看该作者]

DLL没问题的,单独可以运行,DLL里面又调用了thosttraderapi.dll,这个自定义的DLL和金字塔根目录thosttraderapi.dll有冲突,始终调用不到自己的thosttraderapi.dll


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


加好友 发短信
等级:金字塔养老院 帖子:509 积分:2425 威望:0 精华:0 注册:2012/3/2 12:50:05
  发帖心情 Post By:2012/4/10 14:55:23 [只看该作者]

命名不能一样,你自定义的thosttraderapi.dll 和已有的是不是冲突了?把自定义的链接库重命名试试吧
[此贴子已经被作者于2012-4-10 15:05:02编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:204 积分:490 威望:0 精华:0 注册:2010/12/16 16:04:39
  发帖心情 Post By:2012/4/10 15:46:52 [只看该作者]

是的,就是你说的意思,同名,因为我自己DLL公式根据信号走自己的CTP通道(thosttraderapi.dll和thostmduserapi.dll), 但金字塔也用了这2个文件,导致冲突,DLL公式始终都调用了金字塔的CTP DLL接口,导致我自己的交易模块异常,

第三方的动态链接库,名字改不了,还有其他办法么


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


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

(thosttraderapi.dll和thostmduserapi.dll 放到FmlDLL也不行?那样的话应该跟冲突无关,是你的DLL模块编写问题


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

金字塔-技术部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:204 积分:490 威望:0 精华:0 注册:2010/12/16 16:04:39
  发帖心情 Post By:2012/4/10 15:55:22 [只看该作者]

编写没有问题的,单独从FMLDLL文件执行也不会有问题,从交易师DLL接口调用也没有问题, 只要从金字塔启动就会异常, 而且windows日志:

WinStock.exe
2.8.5.0
4f7eb27d
thosttraderapi.dll
0.0.0.0
4cf8b64a
c0000409
0002d365
1414
01cd16e8336b4797
E:\股软\Weisoft Stock\WinStock.exe
E:\股软\Weisoft Stock\thosttraderapi.dll
83ee3ddc-82db-11e1-ba2b-00242cb976d1

 

说明我的DLL调用thosttraderapi.dll里面的功能时,金字塔由于查找DLL顺序的原因,找到他根目录的DLL文件了,FMLDLL里面的thosttraderapi.dll没有机会执行


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


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

试试 在调用你的DLL中的函数前,调用 SetCurrentDirectory 这个API函数,指定默认的工作路径看看


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

金字塔-技术部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:204 积分:490 威望:0 精华:0 注册:2010/12/16 16:04:39
  发帖心情 Post By:2012/4/10 16:51:11 [只看该作者]

已经试过的,

SetDllDirectory(L"E:\股软\Weisoft Stock\FmlDLL"); //无效

 

刚用Procmon.exe分析了金字塔的启动过程,在第一个登陆界面就载入了thostmduserapi.dllthosttraderapi.dll,然后DLL执行我的界面时,并没有重新载入这2个文体, 说明DLL先从当前进程里面查找,如果进程已经载过,后面的就不再加载,始终执行了不了自己的thosttraderapi.dll, 看来这还不好解决, 最好金字塔可以配置是否使用CTP功能,如果为否,就不去加载这文件


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


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

你得thosttraderapi.dll是什么版本的,我们看看后面更新到跟你相同的版本


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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部
总数 13 1 2 下一页