Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:thostmduserapi 的冲突问题!

1楼
sutter 发表于:2012/4/10 14:15:21

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

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

2楼
Leon 发表于:2012/4/10 14:32:54

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

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

[此贴子已经被作者于2012-4-10 14:36:43编辑过]
3楼
sutter 发表于:2012/4/10 14:46:31

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

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

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

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

6楼
王锋 发表于:2012/4/10 15:50:40
(thosttraderapi.dll和thostmduserapi.dll 放到FmlDLL也不行?那样的话应该跟冲突无关,是你的DLL模块编写问题
7楼
sutter 发表于: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楼
王锋 发表于:2012/4/10 16:17:12
试试 在调用你的DLL中的函数前,调用 SetCurrentDirectory 这个API函数,指定默认的工作路径看看
9楼
sutter 发表于:2012/4/10 16:51:11

已经试过的,

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

 

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

10楼
王锋 发表于:2012/4/10 16:53:36
你得thosttraderapi.dll是什么版本的,我们看看后面更新到跟你相同的版本
共13 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.06250 s, 2 queries.