這次的目標在安裝 CxxlMan2 程式庫和多國語言插件,以及用一個簡單的例子做範例。在 CxxlMan2 的部份先下載以下檔案,並解壓到一個資料夾中,我是放在 ~/MySrc
- CxxlMan2 程式庫
- 多國語言插件
- CMRegSelf 插件註冊輔助
- Sprintf 簡單風格字串格式化 (內含這次要用到的範例)
$ sudo apt install gcc
$ sudo apt install c++
$ sudo apt-get install uuid-dev
這次的目標在安裝 CxxlMan2 程式庫和多國語言插件,以及用一個簡單的例子做範例。在 CxxlMan2 的部份先下載以下檔案,並解壓到一個資料夾中,我是放在 ~/MySrc
$ sudo apt install gcc
$ sudo apt install c++
$ sudo apt-get install uuid-dev
這個程式只能用於 Win10 和 Win11,若要用於 Win7,可上網找一套 unassoc 1.4。
我這程式主要參考 删除Windows10后缀名关联程序.cpp ,其實那個程式已經足夠輕巧好用了。我寫的須要包裹一堆程式庫,有點大包。
我寫這程式的目的為了保留和測試一些技術。
原始檔案包,須用最新版 CxxlMan2 先建構好開發環境
Unassociate_File_Types_1.0.1_Src.7z
採用 CMake 方式編譯的執行檔無法在變更語言後自動調整版面,可用 CodeBlocks 載入 Src 資料夾中的 UnassocWin10.cbp 編譯一個來用
64位元版完整檔案包,可直接執行 UnassocWin10.exe
UnassocWin10_1.0.1.7z
另外程式支援多國語言,但能力有限只提供繁中語言檔,其他的語言會用內建的英語顯示,若有人願意轉譯他國語言,可到 MLedit 多國語言編輯器 下載工具,這 UnassocWin10 的多國誩言檔放在 Lang 資料夾中。
Global 物件指的是如下的用法:
class Global_t
{
UTF8_String Hello{"Hello..."};
public:
// Destructor
~Global_t()
{
cout << "Global_t::~Global_t()" << endl;
}
UTF8_String cxxlFASTCALL GetHello() const
{
return Hello;
}
}g_Global;
特性有三:
這裡的插件是指 CxxlMan2 程式庫的 cxxlObjectPlugin 插件,cxxlObjectPlugin 插件有一個特性,當某個 DLL 檔所提供的所有 cxxlObjectPlugin 物件已無使用者時,這個 DLL 檔就會被卸載。
但 DLL 檔提供的物件若是一般的 Singleton 模式物件,那麼永遠都會有一個不能放棄的持有記錄,即使已無持有者了,這個 DLL 檔也永遠卸不掉。這時可藉由 LifeCustody 這個工具的幫忙,就可以解決這問題。
因要設計成 DLL 和 使用端 兩部份,所以直接提供範例原始檔:
SingletonExample.zip
要編譯這範例須先如下的東東: