基礎(chǔ),"> 基礎(chǔ)。">

国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

輸入法開發(fā)——<一>基礎(chǔ)

2023-07-26 10:28 作者:ProsperousFall  | 我要投稿

不懂的可以看下面的參考: Other

開發(fā)建議

使用 WindowsAPI 效率比 CRT 高,所以建議優(yōu)先使用 WinAPI

TSF 輸入法文件

TSF 輸入法,是一個(gè)可注冊(cè)的,包含 COM 接口的 dll

內(nèi)存和引用

COM 接口都繼承自 IUnknown

線程模型

DLL DEF

編譯 dll 需要外露接口,這不僅需要在 *.def 文件中定義

還要在屬性中添加模塊文件,盡管 VS 可以自動(dòng)添加,但建議你檢查一下。

還需要關(guān)閉增量鏈接

這個(gè)庫(kù)視情況而定

不使用的話,這個(gè)也是要關(guān)閉的


DllMain

IME 中,DllMain 的工作有?傳遞句柄、注冊(cè)窗口等

引用管理

DllGetClassObject 每返回一個(gè)對(duì)象(ClassFactory),引用?+= 1 每釋放一個(gè)?ClassFactory 時(shí)?引用?-=?1 。引用 == 0 時(shí),DllCanUnloadNow 才可以返回 S_OK。?

但是不要把 引用 搞成負(fù)的

概要

先來(lái)直白看下 APP 和 IME 都需要干啥。(當(dāng)然,APP 很多工作都由操作系統(tǒng)默認(rèn)控件代為實(shí)現(xiàn)了) APP:?

創(chuàng)建 ThreadMgr ThreadMgr > Activate 創(chuàng)建 DocumentMgr,創(chuàng)建 Context。?

ThreadMgr > SetFocus(DocumentMgr) DocumentMgr > Push(Context)?

IME: 注冊(cè) TextInputProcessor 實(shí)現(xiàn)?

TextInputProcessor->Activate?

ThreadMgr->GetFocus(DocumentMgr)?

DocumentMgr->GetTop(Context)

因?yàn)?C++ 已經(jīng)有?Sample 了,我的項(xiàng)目將使用?C 完成? 后期的示例可能不適用于你

下一章講接口,給我一點(diǎn)時(shí)間去翻譯

參考

SampleIME

https://github.com/microsoft/Windows-classic-samples/tree/main

/IME

Learn Microsoft

https://learn.microsoft.com/zh-cn/windows/win32/tsf/text-services-framework-interfaces

Other

https://yangyuan.github.io/


輸入法開發(fā)——<一>基礎(chǔ)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
志丹县| 大新县| 崇明县| 德钦县| 霍州市| 达拉特旗| 景洪市| 新营市| 甘洛县| 遵化市| 庄浪县| 黑河市| 龙游县| 大城县| 安图县| 卢湾区| 章丘市| 友谊县| 龙口市| 乡城县| 涪陵区| 山东省| 淮阳县| 东丽区| 随州市| 基隆市| 望奎县| 漠河县| 盘山县| 淮滨县| 平安县| 巢湖市| 龙州县| 建始县| 临沧市| 顺义区| 新沂市| 宁夏| 沁水县| 婺源县| 茂名市|