Windows Runtime Cpp 導入のソースを表示
新しいページはコチラ
移動:
案内
,
検索
[[Windows Runtime Cpp]]に戻る == '''概要''' == Visual Studio C++でのWindows Runtimeの利用方法について記述します。対応しているVisual StudioのバージョンはVisual Studio2012からですかね。おそらくこれ以降のVisualStudioでも開発できるように対応されていると思いますし、やり方はあんまり変わらないと思います。Windows10から始まったUniversal Windows Platform UWPを利用する場合には競合する部分がありますので、使い方に注意が必要です。UWPではUWP APIを使うためWindows10 SDKを利用します。特に初期化処理のあたりで競合しますので、使い分けが必要となる場合があります。UWPにもWindowsRuntimeにも詳しくないので、今のところはなんとなくそんなイメージくらいの思いなので、いろいろわかり次第、更新するかもしれません。 == '''文字コード指定''' == 「ツール」->「オプション」->「構成プロパティ」->「一般」で「文字セット」の欄を編集状態にしたときに表示される「'''Unicode文字セットを使用する'''」を選択します。 == '''追加の依存ファイル''' == Windows RuntimeをVC++で利用するにはライブラリファイルを指定する必要があります。 「ツール」->「オプション」->「構成プロパティ」->「リンカー」->「入力」で「追加の依存ファイル」の欄を編集状態にしたときに表示される「編集」を選択して、以下のライブラリ名の文字列を入力してOKを押します。 '''runtimeobject.lib''' == '''インクルードファイル''' == 以下のヘッダファイルをインクルードする必要があります。 '''#include <roapi.h>''' == '''初期化・後処理 RoInitialize~RoUninitialize''' == Windows Runtimeを利用する場合は初期化と後処理が必要で、RoInitialize関数で初期化し、RoUninitialize関数で後処理をします。この初期化と後処理を記述した間でWindows Runtime関数を利用することができます。Windows Runtime関数を使ったときに必要となる、各種関数の利用状況把握をはじめとするいろいろな管理をしてくれることになっています。この管理が必要でなくなったときにRoUninitialize関数を実行するというイメージです。例えば、何もしないWindows Runtimeを使うプログラムは以下のようなプログラムになります。WindowsRuntimeはCOMと同じ概念をもっていて引き継がれています。COM系のCoInitialaize/CoInitializeEx~CoUninitialize関数とかOLE系のOleInitialize~OleUninitializeと互換があるとされていますが、思い通りに使えない関数もあるかもしれません。そのあたりは気を付けてください。どちらにしてもOSや配布されているDLLの状態で動作が変わってくることも考慮しなければならないのでユーザ側のこともよく考えないといけないです。上位のものを使えば、古いWindowsユーザを切り捨てることになるし、上位のものでありなが下位のものでも使えるような互換性を維持しながら幅広いユーザを意識したアプリにするという地道さとか、古いシステムしか使わないという方法とか、そういった判断が迫られます。ちなみにRoInitializeはWindows::Foundation::Initialize()という初期化とも対応しています。ちなみにOleInitializeでマルチスレッドを指定することはできません。 #include <roapi.h> #include <stdio.h> #include <locale.h> #include <wchar.h> int main(){ setlocale(LC_ALL, ""); HRESULT hr01 = '''RoInitialize'''(RO_INIT_MULTITHREADED); if(FAILED(hr01)){ wprintf(L"初期化RoInitialize失敗"); } else{ wprintf(L"初期化RoInitialize成功"); } '''RoUninitialize'''(); _wsystem(L"pause"); } *RoInitialize()関数 引数:RO_INIT_MULTITHREADED もしくは RO_INIT_SINGLETHREADEDを指定。roapi.hで定義されているRO_INIT_TYPE列挙子の引数です。RO_INIT_TYPE::RO_INIT_MULTITHREADEDのように名前空間まで含めて指定することもできます。COMを使用するスレッドの種類を定義する引数です。
Windows Runtime Cpp 導入
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ