Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

将 WeaselServer.exe 编译为64位版本后,服务可以启动,但是无法打字 #1102

Closed
ccyybn opened this issue Feb 12, 2024 · 19 comments

Comments

@ccyybn
Copy link
Contributor

ccyybn commented Feb 12, 2024

  • WinSparkle.lib WinSparkle.dll 都替换为 x64 版本后

  • weasel.sln 里修改编译目标为 x64

  • git checkout librime 的 最新 release 版本 1.10.0

  • librimeweasel 项目的env.bat 修改

set ARCH=x64
  • 执行 build.bat all

成功编译出x64的 WeaselServer.exe,启动后托盘里图标 右键菜单 可以打开窗口

但是打字的时候目没有反应,输出的是字母,程序图标一直卡在 正在部署状态

下面是修改部分的 commit

ccyybn@b2981c5

Snipaste_2024-02-13_00-57-31

Snipaste_2024-02-13_00-59-32

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 12, 2024

weasel-0.15.0.0-installer.zip

这是编译出来的安装包,安装环境是全新的win11虚拟机,测试 32位版本 在相同环境下正常

@Techince
Copy link

Techince commented Feb 12, 2024

小狼毫64位
编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。
image

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 12, 2024

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

@Techince
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 12, 2024

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

刚刚使用你提供的安装包试了一下,有一种非常卡顿的感觉,按下键后有时要等几秒,explorer 程序期间失去响应,不知道是不是系统不同的问题

@Techince
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

刚刚使用你提供的安装包试了一下,有一种非常卡顿的感觉,按下键后有时要等几秒,explorer 程序期间失去响应,不知道是不是系统不同的问题

安装完成后,注销一下系统才会正常。

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 12, 2024

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改

typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;

现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn@1c7d947

@Alexguy1199
Copy link

太好了,终于有人编译64位Windows RIME了!

@Techince
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改

typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;

现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。
目前有现成的64位源码,可以直接阅读

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 13, 2024

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

@Techince
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn/weasel@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

先恭喜一下。
不过作为开发者,要尽量避免重复造轮子。
我去年夏天开始改造64位,使用的C++20标准,输入法逻辑与官方保持一致,但会修复一些已知bug。

@Alexguy1199
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。 image

这个版本会报病毒,在Windows 11 64bit 系统。

@Techince
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。 image

这个版本会报病毒,在Windows 11 64bit 系统。

报毒的话可以添加到杀软的信任区域里。

@Alexguy1199
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn/weasel@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

安装测试了一下,安装过程没有报错,但是运行好像不正常。右键目录的选项无反应。重新部署也没有反应。

@ccyybn
Copy link
Contributor Author

ccyybn commented Feb 14, 2024

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn/weasel@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

安装测试了一下,安装过程没有报错,但是运行好像不正常。右键目录的选项无反应。重新部署也没有反应。

刚又测试了一遍,在我的环境下,没发现异常,建议完全卸载32位版本后,删除本机用户文件夹数据,重启再安装,如果你的方案使用了lua脚本,需要重新编译rime.dll,我编译时忘记克隆这个扩展支持了,不过不影响正常输入,只是一些转农历大写数字的功能用不了

@fxliang
Copy link
Contributor

fxliang commented Feb 28, 2024

#1121
可以试试这个看,32位64位完全兼容的方式

@Alexguy1199
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn/weasel@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

安装测试了一下,安装过程没有报错,但是运行好像不正常。右键目录的选项无反应。重新部署也没有反应。

刚又测试了一遍,在我的环境下,没发现异常,建议完全卸载32位版本后,删除本机用户文件夹数据,重启再安装,如果你的方案使用了lua脚本,需要重新编译rime.dll,我编译时忘记克隆这个扩展支持了,不过不影响正常输入,只是一些转农历大写数字的功能用不了

我测试了https://github.com/Techince/weasel的[weasel-0.15.1.007-installer_x64.exe]版。这个版本不错,可以正常了。(https://github.com/Techince/weasel/releases/download/weasel-0.15.1.0_x64/weasel-0.15.1.007-installer_x64.exe)

@dangpengsong
Copy link

小狼毫64位 编译64位需要修改一些代码,尤其是管道消息头部的RimeSessionId类型。

能提供一下源代码吗,我对win32编程不是很了解,谢谢

https://github.com/Techince/weasel

在主仓库代码基础上,通过修改
typedef uintptr_t RimeSessionId;using RimeSessionId = uint64_t;
现在没有卡在正在部署了,但是打字仍然不出汉字

COMMIT ccyybn/weasel@1c7d947

建议多看看64位的源码。从32位源码到64位源码,需要修改不少地方,得静下心来分析逻辑来适配64位程序才行。 目前有现成的64位源码,可以直接阅读

非常感谢你的源代码,由于你的代码做了巨量的其他改动,这中间过程非常艰难,不过我终于分辨出了 x64 的有效部分,目前基于官方代码的 64位版本 已经完全正常

下面是修改的部分

ccyybn/weasel@061c65d

64位版本 安装包

weasel-0.15.0.0-installer.zip

安装测试了一下,安装过程没有报错,但是运行好像不正常。右键目录的选项无反应。重新部署也没有反应。

刚又测试了一遍,在我的环境下,没发现异常,建议完全卸载32位版本后,删除本机用户文件夹数据,重启再安装,如果你的方案使用了lua脚本,需要重新编译rime.dll,我编译时忘记克隆这个扩展支持了,不过不影响正常输入,只是一些转农历大写数字的功能用不了

装上测试了一下,可以打字,但是候选框不显示,只能盲猜,安装的时候疯狂闪烁升级检测那个窗口

@ccyybn
Copy link
Contributor Author

ccyybn commented Mar 25, 2024

@dangpengsong 现在建议编译大佬新弄的64版本 #1121

@fxliang fxliang closed this as completed Mar 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants