【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具

花了週末兩天時間,將opencc移植成WIN10-UWP可用的庫,並完成自己的繁簡轉換工具。

我的繁簡轉換工具下載地址為:https://www.microsoft.com/store/apps/9nblggh68g62

移植後的代碼下載地址:http://yunpan.cn/cFiYYCxwTLdfX  访问密码 0533

因為今天(2015-11-1 20:18)才上傳,所以如果你在今天或接下來的兩到三天,是找不到這款軟件的,因為微軟商店在審核。。

來個GIF圖來瞅瞅:

台灣的“軟體”可以轉換成大陸的“软件”哦。

1.移植

1)創建一個VC++,DLL通用工程

2)for(auto x : xs) 要全部換成 for each (auto x in xs)

3)要關閉安全檢測,這個是為了使strcpy等函數編譯通過。

4)所有opencc的cpp文件,要禁用預編譯頭。

5)在Config.cpp中,要將 #include <unordered_map> 放到最上面,不然編譯不過。具體原因待查。

搞完這幾步,一個DLL就創建成功了。

2.創建RuntineComponent

我不知道C#工程能否直接調用DLL,沒有試驗過。不過即便能調用,相信也是相當麻煩的,需要處理一大堆類型轉換的問題。

所以,我們有必要創建一個通用工程,所有語言都可以調用的模塊,這個模塊就是RuntineComponent了。

具體可以參考博客:http://www.cnblogs.com/webabcd/p/3422563.html

還有C++/CX的一些參考,也是需要你去了解的:https://msdn.microsoft.com/en-us/library/windows/apps/hh699871.aspx

我的例子,名為OpenCCx,後面加一個x,表示我這個是亂搞的,並不是原作者搞出來的。

3.使用RuntineComponent

創建一個C#的UWP工程,添加OpenCCxRuntineComponent工程到你的解決方案。

在UWP工程中,添加引用,選擇工程,點擊“確定”即可。

然後,在你的工程裡面就可以使用 OpenCCxRuntineComponent名字空間。

例子是非常簡單的:

OpenCCxRuntineComponent.OpenCCx opencc_s2t = new OpenCCxRuntineComponent.OpenCCx(); --- 創建

opencc_s2t.Load(OpenCCxRuntineComponent.ConverterType.Simple2Traditional);  ----使用什麼轉換規則
        private void btn2Simple_Click(object sender, RoutedEventArgs e)
        {
            string ret = opencc_t2s.Convert(textBox.Text); ---使用簡單的Convert就OK了。
            if (ret != null)
            {
                textBox.Text = ret;
            }
        }

你可以使用一個OpenCCx變量,用哪個就Load哪個。

我的代碼中,對已加載的東東進行了保存,不會重複加載的。

也可以使用多個OpenCCx變量,一個變量代表一種轉換,看個人需要了。

[PS]

終於可以使用自己的繁簡轉換工具了^_^,感謝opencc作者。

帖上opencc代碼地址:https://github.com/BYVoid/OpenCC

在線opencc轉換地址:opencc.byvoid.com

[END]

时间: 2024-10-03 14:55:54

【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具的相关文章

css 實現微信聊天類似的氣泡

要實現這樣的效果 代碼如下: --------------------------------------- <style> .test{width:300px; padding:30px 20px; margin-left:60px; margin-top:100px; background:#beceeb; position:relative;} .test span{width:0; height:0; font-size:0; overflow:hidden; position:abs

Marquee實現滾動公告

<marquee scrollamount="3" direction="up"> --內容 </marquee> 今天自己第一次要實現類似滾動公告的東西,記一下問題點 1.在運行時發現IE瀏覽器無法現行,但是Google卻能顯示:解決的辦法是設置IE瀏覽器,在進階設置中將'多媒體'選項的勾都打上就OK了

linux下c++實現簡單的生產者消費者隊列模式

引言 生產者消費者是一個經典的模式 利用生產者,消費者和緩衝區降低了生產者和消費者之間的的耦合度 便於對生產者和消費者的修改 下面記錄的是一個經典的單一生產者多消費者的模式 設計思路 以隊列做為緩衝區,實現產品的FIFO 生產者調用緩衝區的push函數,將產品加入緩衝區 消費者調用緩衝區的pop函數,將產品從緩衝區取出 因為生產者與消費者分屬於不同的線程,所以要設置鎖 類的聲明 class CacheQueue { private: /** * @brief 緩衝隊列 */ queue<int>

那些年我們未實現的夢

昨天晚飯之後和大學同學在西門町紅樓後面的酒吧聊了很多,聊了過去,現在,當然也不斷地在弄清我們的未來. “清華北大” 這是我的第一個夢想吧,可能大多數中國的學生的夢想,但是能去的人才有幾個呢.特別是在小城市,每年也就三四個考上清華和北大的.大我兩歲的表哥還是我們市歷史上第一個報送到清華的學生,而下一個這麼多年過去也一直沒有.我不算是很努力的學生,但是覺得自己有點小聰明,也沒有像別人題海戰術,基本上就是把老師上課的內容搞明白,時常溫故而知新.從高一開始的年級400多名,經過一年努力,逐步穩定在二十名

js實現點擊:回到頂部

"回到頂部"功能可以使用a標籤的錨點實現,也可以使用js的onclick事件實現. 關鍵步驟:1.html+css佈局 2.滾動條到滾動到一定高度時候,顯示按鈕"回到頂部"(若還沒有到一定高度,則隱藏) 3.點擊按鈕實現回到頂部:scrollTop = 0; 具體如下: html:實現頁面效果 <body class="container"> <div class="top"> hello: top &

了大力氣纔得以實現他出身

了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他出身了大力氣纔得以實現他

[DE0-NANO] HC-05藍芽模組實現與測試(二)

篇是接續  [DE0-NANO] HC-05藍芽模組實現與測試(一) 本篇主要功能是將RFS板與電腦連接.硬體程式與上一篇相同. 在NIOS軟體部分,我新增了一個SLAVE模式,把RFS板上的HC05設為被動模式(SLAVE). 操作步驟 -------------------------------------------------------------------------- 1. 下載 DE0_Nano.sof 2.斷掉RFS板子電源,按下BT_KEY後在接上RFS板子電源. (此時

實現樹樁類型結構及其相應的操作【增刪查改和移動】

<h1>一.創建樹樁結構對應的表</h1><p>1.創建樹樁層次結構表</p><p>樹狀結構表採用鏈結構的設計方式,每個節點包含一個當前節點指針ID.下一節點指針ID,以及當前節點的相關信息:節點名稱.順序.有效性.是否為葉子.層次,以下為創建表結構的SQL語句</p><pre class="code" name="pre-TypeConfig">    CREATE TABLE [

用web報表工具實現同期比

由finereport報表軟體製作 同期比,指的是一個與時間相關的運算. 上圖報表顯示的就是在同一年內每一個月份與上一個月份的比值. 下面我們來看一下實現上述報表的過程,工具FineReport報表 1.連接資料庫frDemo 2.設計報表 2.1新建報表 2.2表樣設計 按照下圖設計好報表的基本框架 2.3新建一數據集名為ds1 SQL語句:訂單.訂購日期,訂單明細.單價,訂單明細.數量訂單.訂購日期 訂購年份訂單.訂購日期訂購月份,訂單明細.數量*訂單明細.單價訂購金額訂單,訂單明細訂單.訂