= お気に入りのライブラリをVisualStudioで1つのdllにまとめた == 概要 色々なオープンソースのライブラリを使ってアプリケーションを作ると、ライブラリのdllの数が多くなってきたり、依存関係がややこしくなったりと、メンテナンスが色々大変になってきます。 お気に入りのライブラリをストレスフリーで扱えるように、ライブラリのソースをすべて1つのVCプロジェクトにまとめてみました。 配布物の中にあるVCプロジェクトをビルドすると、全部のライブラリが含まれる1つのdllが出力されます。 このdllにリンクするようにアプリケーションをビルドすれば、ファイル構成がかなりスッキリしますし、Debug/Releaseの切り替えも容易になります。 また、Tcl/Tk については、 実行時に必要な /lib 下のファイルをまとめた tcl_rt.tar も入れてあります。 一緒に入れてある sample.cpp のようにコーディングすれば、 tcl_rt.tar をそのままランタイムライブラリとして使えるようになっていると思います。多分。 dllのサイズは、大体10MB くらいです。 tcl_rt.tar が約 5MB なので、依存ライブラリのサイズは合わせて 15MB くらいとなります。 == ライブラリ一覧とダウンロード === Visual Studio 2012版 * zlib 1.2.11 * libtiff 3.9.4 * libpng 1.5.1 * jpeglib 8.3 * libharu 2.3.0 * CxImage 7.02 * sqlite 3.21.0 * Tcl/Tk 8.6.8 (itcl, thread, sqlite, vfs, memchan, blt 2.5, Tkhtml 3.0a 拡張付き) * libxlsxwriter 0.9.4 * TTW * OpenNurbs (2013/07/11版) * ONGEO '''ダウンロード''':[/downloads/users/25/25429/OSSLibs.zip ソース一式+VisualStudio2012プロジェクトファイル] === Visual Studio 2017版 ... Tcl/Tk 8.6.8 がVS2017でビルドできなかったため、8.6.12にバージョンアップ * zlib 1.2.11 * libtiff 3.9.4 * libpng 1.5.1 * jpeglib 8.3 * libharu 2.4.2 * CxImage 7.02 * sqlite 3.36.0 * ptypes 2.1.1 * Tcl/Tk 8.6.12 (thread, sqlite, vfs, memchan, blt 2.5, Tkhtml 3.0a 拡張付き) * libxlsxwriter 1.1.4 * TTW * OpenNurbs (2013/07/11版) * ONGEO '''ダウンロード''':[/downloads/users/39/39707/OSSLibs_vs2017_20221110.zip/ ソース一式+VisualStudio2017プロジェクトファイル] == このライブラリでできること * png/tiff/jpeg 画像生成、読み込み (libtiff、libpng、jpeglib、CxImage) * pdf 生成 (libharu) * ファイルベースのRDB処理 (sqlite) * Object型によるデータ処理 (Tcl_Obj) * Tcl 言語処理 (Tcl) * json 入出力 (TTW_json~ 系関数 (janssonベース)) * 多倍長整数の演算 (TclBN_~ 系関数 (libtommathベース)) * 文字コード変換 (TTW_DString) * tar ファイル内のファイルへのアクセス (Tcl_FN~系関数) * ウィンドウベースのGUI (Tk) * グラフ描画 (BLT) * HTML表示 (TkHtml) * Excelファイル(.xlsx)生成 * 3dm ファイルの入出力 (OpenNurbs) * 幾何形状処理 (OpenNurbs、ONGEO) == 変更履歴 * 2019/01/28 : 初版 * 2019/02/02 : ONGEO追加、BLT、TkHtmlソースをちょっと修正 * 2019/04/22 : BLT graph に -plotwidth、-plotheight オプション(プロットエリアサイズを明示的に指定できる機能)を追加 * 2020/02/09 : libxlsxwriter (Excelファイルを生成するライブラリ)追加 * 2022/11/10 : Visual Studio 2017対応、いくつかのライブラリバージョンの更新 == 関連情報 * [https://pocoproject.org/ POCO] C++ で色々なことができるようになるライブラリ。・・・これを使っておいたほうが楽だったのかもしれない・・・。触ったことはないですが(汗。