私は現在、いくつかのテキストリソースを必要とするメトロアプリケーションに取り組んでいます。ビルドプロセスの一部は、これらのリソースのすべてを、アプリケーションのインストールディレクトリ内のフォルダにコピーすることです。私がしたいことは、これらのリソースファイルのリストを収集し、それに応じてそれぞれのリソースファイルを処理することです。残念なことに、そうする私の試みは成功していません。C++でのWinRT非同期ファイル操作
私はWinRT用にビルドしているので、非常に便利な "FindFirstFile"と "FindNextFile"関数を使用することはできません。私は、WinRT非同期ファイル入出力操作を使用してジョブを完了しようとしています。
コンパイルに失敗しauto getResourceFolder = installedLocation->GetFolderFromPathAsync( folderPath );
getResourceFolder->Completed = ref new Windows::Foundation::AsyncOperationCompletedHandler<Windows::Storage::StorageFolder^>(
[this](Windows::Foundation::IAsyncOperation<Windows::Storage::StorageFolder^>^ operation) {
if(operation->Status == Windows::Foundation::AsyncStatus::Completed) {
auto resourceFolder = operation->GetResults();
auto getResourceFiles = resourceFolder->GetFilesAsync();
getResourceFiles->Completed = ref new Windows::Foundation::AsyncOperationCompletedHandler< IVectorView<Windows::Storage::IStorageFile^>^ >(
[this](Windows::Foundation::IAsyncOperation< IVectorView<Windows::Storage::IStorageFile^>^ >^ operation) {
if(operation->Status == Windows::Foundation::AsyncStatus::Completed) {
auto resourceFiles = operation->GetResults();
for(unsigned int i = 0; i < resourceFiles->Size; ++i) {
// Process File
}
}
});
}
});
:
エラーC2664: 'Windowsの::財団:: IAsyncOperation < TResult> ::完了::設定':「のWindowsからパラメータ1を変換することはできません::財団:: AsyncOperationCompletedHandler < TResult>^Windowsの」から '::財団:: AsyncOperationCompletedHandler < TResult> ^'
はエラーが私には何の意味を行っていません。私はラムダハンドラ関数がインラインではないが、違いは生じていないように上記のコードを書き直そうとしました。私は何が間違っているのか分かりません。
アイデア?前もって感謝します。
'do'と 'then()'メソッドを使うべきではないでしょうか。それはあなたのコードを短く、より明確にします。 –
svick
svickと同意します:pplはあなたの友人です。 –