2021年3月18日 星期四

把 GLAD 編譯成 dll

因 LearnOpenGL 採用 GLAD 來抓取 OpenGL API,所以也研究了一下,GLAD 的好處是可以明確指定你開發程式所要支援的 OpenGL 版本,在初始化時可以檢查顯示卡是否能支援。

GLAD 可到 https://glad.dav1d.de 下載,但拿到的會是原始檔,因 GLAD 只是把 OpenGL API 的函數位址抓出來存放到程式可觸及的記憶體空間中,若採用把 glad.c 和你的專案一起編譯,則主程式(exe) 和各用到 OpenGL API 的 dll 都得把 glad.c 一起編譯,並各別呼叫 gladLoadGL() 做初始化,既浪費空問(因得各別保存 OpenGL API 的函數位址)又沒人性(因得各別 gladLoadGL() 初始化)。

我想最完美的做法是把 GLAD 編譯成 dll,這樣 GLAD 的 OpenGL API 函數位址就放在這個 dll 獨立空間中,而 gladLoadGL() 只要由主程式呼叫一次就可以了。

2021年3月1日 星期一

[轉貼]辦別執行檔為 64 位元或 32 位元

見 有程式能辦別執行檔為 64 位元或 32 位元的呢? - Mobile01

其實用 7-ZIP 就可以了,但 danfong 所提供配合批次檔的做法也有參考價值,以下覆製下來以免往後失連

@for /f "tokens=2 delims== " %%i in ('7z l "%~f1"^|find/i "cpu"') do @echo PE類型為:%%i 檔案:"%~f1"