注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
PowerShell求助&讨论
» powershell调用dll将汉字转为拼音
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
1
楼
跳转到
»
发表于 2023-3-14 20:07
|
显示全部帖子
直接编译成dll只能以p/invoke方式调用.为了兼容性,用msvc,软件就是visual studio(图形界面)或visual studio build tools(字符界面).注意要在编译选项给出导出函数或在源码需要导出的函数前加上
__declspec(dllexport)
想要在ps直接使用,需要转成c++/cli的代码并且以/clr的编译选项编译成dll,有点麻烦
其实也可以直接在ps里写个文字跟拼音的hashtable,然后索引就行了
(有多音字的存在,不管怎么样都不会100%准确)
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
2
楼
发表于 2023-3-14 20:56
|
显示全部帖子
回复
10#
小白龙
除了vs还可以使用gcc(mingw)或clang(llvm),vs因为包含各种平台跟目标平台(x86,x64,arm,arm64....)才这么大的,只能安装后自行精简
ps编译成可以直接使用dll,可以参考
https://learn.microsoft.com/zh-cn/previous-versions/ms235281(v=vs.120)
编译成dll后(只能使用msvc,即vs编译),ps里直接add-type之类添加dll就行了
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
3
楼
发表于 2023-3-14 21:03
|
显示全部帖子
回复
11#
Five66
还有种方法,用C#生成一个调用C++的封装类的dll,ps里也可以直接使用
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
4
楼
发表于 2023-3-14 23:28
|
显示全部帖子
回复
16#
小白龙
试试将isascii(c)改成 c < 0x80
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
5
楼
发表于 2023-3-15 01:58
|
显示全部帖子
回复
24#
小白龙
你的"中国人"是utf8编码的,utf8编码的"中国人"前面两字节是0xe4和0xb8,执行代码 (0xe4-0xa0)*100+(0xb8-0xa0) 后是 6824 ,对应代码 case 6824(返回拼音 "JUAN")
而gbk编码的"中国人"前面两字节是0xd6和0xd0,执行代码 (0xd6-0xa0)*100+(0xd0-0xa0) 后是 5448 ,对应代码:
if(code>=5448 && code<=5458)
{
return "ZHONG";
break;
}
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
6
楼
发表于 2023-3-15 03:49
|
显示全部帖子
睡不着弄了个能直接调用的dll(64位的dll,包含源码,只是加了个类),有兴趣的就看看吧
点击下载
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
7
楼
发表于 2023-3-15 16:56
|
显示全部帖子
回复
31#
小白龙
换了个下载地址,打开下面的地址后等待10秒左右点击download就行了
http://ybshare.com/download/y7ihz8g6jy
TOP
Five66
发短消息
加为好友
Five66
当前离线
UID
104408
帖子
548
精华
0
积分
775
PB
553
技术
74
捐助
0
阅读权限
40
在线时间
296 小时
注册时间
2021-8-26
最后登录
2024-4-24
中尉
帖子
548
积分
775
技术
74
捐助
0
注册时间
2021-8-26
8
楼
发表于 2023-3-15 20:48
|
显示全部帖子
回复
36#
小白龙
dll有vc依赖项,为:
VCRUNTIME140.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
需要安装vc++之类的运行库
TOP
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]