Windows Runtime Cpp 導入 新しいページはコチラ
提供: yonewiki
(→概要) |
(→初期化・後処理 RoInitialize~RoUninitialize) |
||
20行: | 20行: | ||
== '''初期化・後処理 RoInitialize~RoUninitialize''' == | == '''初期化・後処理 RoInitialize~RoUninitialize''' == | ||
− | Windows Runtimeを利用する場合は初期化と後処理が必要で、RoInitialize関数で初期化し、RoUninitialize関数で後処理をします。この初期化と後処理を記述した間でWindows Runtime関数を利用することができます。Windows Runtime関数を使ったときに必要となる、各種関数の利用状況把握をはじめとするいろいろな管理をしてくれることになっています。この管理が必要でなくなったときにRoUninitialize関数を実行するというイメージです。例えば、何もしないWindows | + | 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 <roapi.h> |