我在之前使用ukylin-wine来运行通达信版的国金证券交易软件,各方面使用也没有任何异常,但是国金证券在最近几天要求强制更新到7.86版本,我到官方网站下载了7.87版本的安装程序进行了更新安装,安装过程一切顺利,但是使用ukylin-wine启动通达信软件的时候,就报错“当前文件无指纹 version.dll”,然后就只能退出程序,无法再使用交易软件。
在前一篇文章中提到,我已经将操作系统更新到Ubuntu 22.04(Linux Mint 21),并且已经编译安装了Wine7.19版本,我使用新安装的wine程序来运行通达信交易软件,可以正常登录,但是侧边栏显示异常,这个侧边栏恰恰是我使用通达信软件的唯一原因,侧边栏显示的效果如下:
通过网上在各论坛查找原因,发现侧边栏实际上是一个网页形式显示的组件。其他人并未反馈这个问题,也找不到解决办法,我毕竟不是wine的开发人员,也无法从源代码角度来解决这个问题,我到通达信的目录中查看有没有解决问题的突破口,在通达信程序目录中发现一个名为chrome的目录,我想这个是可以下手的地方。我在容器中中安装了国信软件的通达信客户端,发现可以正常把内容显示出来,但是侧边栏的正常内容一闪而过,快速切换到另外的内容,效果如下:
我将国信证券的通达信目录中的chrome子目录拷贝到国金证券的通达信目录中替换掉原目录,就可以让国金证券在显示侧边栏方面也是可以显示出来,但是也是要切换到其他内容中去,只不过等待的时间要长一些:
为了延长切换的时间,我将国信证券拷贝过来的chrome目录中的部分文件替换回了原国金证券的版本,这两个文件是:libEGL.dll和libGLESv2.dll,但是始终没能彻底解决这个切换的缺陷(Windows中安装的软件则不会出现切换的问题),希望熟悉wine源代码的网友能帮忙解决这个问题,为广大网友造福。
另外通达信有一部分内容需要使用gecko和mono才能正常显示,比如登录后弹出的消息框的内容,因此启动脚本run.sh中的命令应该修改为:env WINEPREFIX="$HOME/.ukylin-wine/tdx" wine "c:/new_gjzq_v6/tdxw.exe",而不能保留微信软件启动命令中的 WINEDLLOVERRIDES="mscoree,mshtml="参数。