以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于“x86编译没问题,64位编译后无法正确加载插件”等问题的解决,有类似问题的都看过来!  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=165678)

--  作者:nicosj
--  发布时间:2018/9/25 21:22:55
--  关于“x86编译没问题,64位编译后无法正确加载插件”等问题的解决,有类似问题的都看过来!
最近在折腾一个老插件,之前在x86版本中没问题。突然发现x64编译后无法在新版本金字塔x64版内正确加载。
于是搜索论坛发现类似的问题还不少……最终也没有得到明确有效的解决。而金字塔的相关文档也是寥寥带过,没有详细的说明。

于是从新版软件自带的Fmldevelop demo入手,发现用最新的vs2017 x64版本转换之后编译确遇到问题,于是兴奋不已,终于看到了
问题所在!(右键demo工程的属性)

即金字塔使用的C++ tools 和 windows SDK 8.1 是 vs2013 sp1(好像是)自带的版本,而不同版本的SDK由于引用和依赖
会有很大差异,所以编译出来的东西并不能保证二进制的兼容性。

所以,根本的解决问题,就是将需要编写的插件使用和金字塔(至少是demo)同一个版本的SDK,如果vs版本大于2013,则手动下载安装
windows SDK 8.1,然后再工程属性里面指定即可。最好把工程其他的编译依赖属性都改成和demo的工程相关属性一致,不要怕麻烦,把
工程属性里面的每一项都过一遍!!!

最后,建议金字塔在二次开发方面的文档能够做的更好一点。至少把软件使用的编译环境在文档中写明白,不要再让大家绕弯路了……

--  作者:马良
--  发布时间:2018/9/25 22:02:17
--  
看了半天没看明白,您的意思是用自带的demo用2017编译64位也无法成功的吗?
--  作者:nicosj
--  发布时间:2018/9/25 22:22:21
--  
如果系统没有安装windows SDK 8.1,的话是无法编译成功的!demo工程的属性里面指定了SDK是8.1版本的,2017自带的SDK是版本10.xxxx,所以需要用VS的installer补充安装或者独立下载安装Windows SDK 8.1
--  作者:无为剑
--  发布时间:2018/9/26 11:44:31
--  
我们用VS 2015测试 X64是没有问题的,你估计是安装VS开发工具时时没有使用正确的方法安装VC开发工具包