[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
直接编译成dll只能以p/invoke方式调用.为了兼容性,用msvc,软件就是visual studio(图形界面)或visual studio build tools(字符界面).注意要在编译选项给出导出函数或在源码需要导出的函数前加上
__declspec(dllexport)

想要在ps直接使用,需要转成c++/cli的代码并且以/clr的编译选项编译成dll,有点麻烦

其实也可以直接在ps里写个文字跟拼音的hashtable,然后索引就行了

(有多音字的存在,不管怎么样都不会100%准确)

TOP

回复 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

回复 11# Five66

还有种方法,用C#生成一个调用C++的封装类的dll,ps里也可以直接使用

TOP

回复 16# 小白龙


    试试将isascii(c)改成 c < 0x80

TOP

回复 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

睡不着弄了个能直接调用的dll(64位的dll,包含源码,只是加了个类),有兴趣的就看看吧
点击下载

TOP

回复 31# 小白龙

换了个下载地址,打开下面的地址后等待10秒左右点击download就行了

http://ybshare.com/download/y7ihz8g6jy

TOP

回复 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

返回列表