C++/WinRT(UWP)でライブラリ(SDL2)入れてみた!
使用ライブラリのUWP対応を確認
使用したいライブラリが、WindowsやLinuxなどのOSなどによる個別の処理がある場合、「必ずUWPが使えるか」確認してください。
例えば、今回使用したいSDL2のgithubは、UWPに対応しています。実際にUWPにライブラリを組み込むために必要な「Windows メタデータファイル(.winmd)」が生成できるプロジェクトが用意されています。
特にOS別の処理無ければ、大丈夫だと思います。githubにソースコードが載っている場合、一度、「winrt」や「win32」などのワードで検索して、#defineなどで制限されているか確認した方がいいです。
README.mdなどで「UWP対応してないお!」と書かれていれば、諦めましょう。
ちなみに、一応、WPFのみの対応のソースコードでも「ビルドするだけ」なら出来ます。
ですが、実行時で、UWPは、DLLを参照してEXEを実行することは出来ません。(その説明資料を見たのだけども、どこで見たか忘れた、説明は自分で検索して調べてください)
なので、「DLLが見つからない」と怒られる羽目に二進も三進も行かなくなります。
ライブラリをC++/WinRTで使えるようにビルドする
ここに置いてある、slnファイルを開いて、ビルドしてください。
生成されたwinmdファイルを使いますので、プロジェクト設定欄に、「Windows ランタイム メタデータ (.winmd) ファイルの生成」がオン(/WINMD)になっているか確認してください。
ビルド出力されたファイルに、winmdファイルとlibファイルが存在するか確認してください。
ライブラリを自分のプロジェクトに組み込む
自分のプロジェクトを開いて、ソリューションエクスプローラーに「追加」→「参照」で、「参照の追加」を開いてください。
その中に、先ほど、ビルドしたライブラリで、生成されたwinmdファイルを登録してください。
プロパティページを開き、リンカーの「追加のライブラリディレクトリ」に、libファイルがある場所を書いてください。
生成したlibファイルの名前を書いてください。
オワリ!
これで、環境構築完了です。
適当にプログラム書いて、実行するか確認してみましょう。
Discussion