見 有程式能辦別執行檔為 64 位元或 32 位元的呢? - Mobile01
其實用 7-ZIP 就可以了,但 danfong 所提供配合批次檔的做法也有參考價值,以下覆製下來以免往後失連
@for /f "tokens=2 delims== " %%i in ('7z l "%~f1"^|find/i "cpu"') do @echo PE類型為:%%i 檔案:"%~f1"
見 有程式能辦別執行檔為 64 位元或 32 位元的呢? - Mobile01
其實用 7-ZIP 就可以了,但 danfong 所提供配合批次檔的做法也有參考價值,以下覆製下來以免往後失連
@for /f "tokens=2 delims== " %%i in ('7z l "%~f1"^|find/i "cpu"') do @echo PE類型為:%%i 檔案:"%~f1"
這是很古早以前的教學了,但還是有它的參考和歷史價值,網路上還是可找到它的教學,唯原始碼的檔案不容易找到,這論壇的有心人有完整的保留,包括 C++ 原始檔,也做了中文翻譯,介紹給大家。
尤其是原始檔為了安全的理由,大家應保留一份。
跨平台輸入設備程式庫,包含鍵盤 滑鼠 搖桿 觸控 ,支援 cmake 編譯
到 Releases · wgois/OIS · GitHub 抓取,我取得時是 1.5 版
看一下 demos\OISConsoleDemo 子目錄中的範例大概就知道的怎麼用,以下摘錄範例的 Win 平台做簡要說明
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
要編譯這範例須先如下的東東:
#include <iostream> using namespace std; class A { int m_v; public: // Constructor A(int v) { m_v = v; } void Show() { cout << "數值:" << m_v << endl; } }; class B { public: // Constructor B() {} void Show(int v) { static A a(v); // 函數中的靜態變數 a.Show(); } }; int main() { B b1; B b2; b1.Show(1); // 第一次執行會設定靜態變數,往後用的都是同一個 b1.Show(11); b2.Show(2); b2.Show(22); return 0; }