😺

C++/WinRT(UWP)でライブラリ(SDL2)入れてみた!

2023/01/17に公開

使用ライブラリの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ファイルの名前を書いてください。

オワリ!

これで、環境構築完了です。

適当にプログラム書いて、実行するか確認してみましょう。

\(^o^)/

Discussion