charltsing
发表于 2024-11-19 10:28:30
D4llower 发表于 2024-11-19 10:26
不愧为大师,感谢专业的点评和指正,受教了
你去问问作者为啥需要两个dll
D4llower
发表于 2024-11-19 10:44:17
本帖最后由 D4llower 于 2024-11-21 10:07 编辑
charltsing 发表于 2024-11-19 10:28
你去问问作者为啥需要两个dll
释放两个DLL的情况,只发生在64位Windows系统下,不管Office安装的是32位还是64位。如果是32位Windows系统,就只会释放 SmartIndenter32.dll 这一个DLL。
我想 Stephen 应该是为了简化64位系统下的安装动作,所以把32位和64位两个DLL都放在安装目录里了。使用32位Office的话,实际只加载32位的SmartIndenter32.dll;同理,使用64位Office的话,实际只加载64位的SmartIndenter64.dll。
如果大佬的问题,实际上是想指出 Stephen 是不是不知道 .NET 可以选择 “Any CPU” 方式编译的话,我不太方便去质疑,哈哈。
xsping838
发表于 2024-11-19 16:05:39
PYG有你更精彩!
linxiansen
发表于 2024-11-19 19:49:56
PYG有你更精彩!
lizhipei78
发表于 2024-11-20 09:02:50
终于有汉化版了,万分感谢
whoisboss
发表于 2024-11-20 09:16:21
PYG有你更精彩!
nzkboy
发表于 2024-11-20 15:38:51
太棒了,牛逼
charltsing
发表于 2024-11-20 22:36:01
D4llower 发表于 2024-11-19 10:44
释放两个DLL的情况,只发生在64位Windows系统下,不管Office安装的是32位还是64位。如果是32位Windows系 ...
net framework 可以用 any cpu 单文件部署。
只有net core以上才需要分成32和64两个dll部署。
他这个应该是net framework编译的吧
D4llower
发表于 2024-11-21 10:06:16
charltsing 发表于 2024-11-20 22:36
net framework 可以用 any cpu 单文件部署。
嗯,原版确实是 Framework 编译的,4.6.2。
如果要硬解释的话,只能说 Stephen 或许对于 Any CPU 的编译模式有顾虑吧,毕竟 4.5 之后多了 Prefer 32-bit 的选项(虽然可以不选),他可能只是更保守一些。又或者说,这只是他的个人偏好,仅此而已吧。
至于纯粹的技术交流和过招,我 C# 的开发经验远不及大佬,对线之类的问题大佬还是直接联系 Stephen 吧,记得大佬以前也跟他聊过,哈哈。
charltsing
发表于 2024-11-21 12:55:17
D4llower 发表于 2024-11-21 10:06
嗯,原版确实是 Framework 编译的,4.6.2。
如果要硬解释的话,只能说 Stephen 或许对于 Any CPU 的编 ...
Prefer 32-bit 本意是给ARM系统用的。在Windows系统下的含义就是64位系统以32位进程运行程序。
In .NET 4.5 and Visual Studio 11 the cheese has been moved. The default for most .NET projects is again AnyCPU, but there is more than one meaning to AnyCPU now. There is an additional sub-type of AnyCPU, “Any CPU 32-bit preferred”, which is the new default (overall, there are now five options for the /platform C# compiler switch: x86, Itanium, x64, anycpu, and anycpu32bitpreferred). When using the "Prefer 32-Bit" flavor of AnyCPU, the semantics are as follows:
[*]If the process runs on a 32-bit Windows system, it runs as a 32-bit process. IL is compiled to x86 machine code.
[*]If the process runs on a 64-bit Windows system, it runs as a 32-bit process. IL is compiled to x86 machine code.
[*]If the process runs on an ARM Windows system, it runs as a 32-bit process. IL is compiled to ARM machine code.
The difference, then, between “Any CPU 32-bit preferred” and “x86” is only this: a .NET application compiled to x86 will fail to run on an ARM Windows system, but an “Any CPU 32-bit preferred” application will run successfully.