私は現在、いくつかのテキストリソースを必要とするメトロアプリに取り組んでいます。ビルドプロセスの一部は、これらすべてのリソースをアプリのインストールディレクトリ内のフォルダーにコピーすることです。私がやりたいのは、これらのリソースファイルのリストを収集し、それに応じてそれぞれを処理することです。残念ながら、そうしようとした私の試みは成功していませんでした。
WinRT用にビルドしているため、非常に便利な「FindFirstFile」関数と「FindNextFile」関数を使用できません。WinRT非同期ファイルIO操作を使用してジョブを実行しようとしています。
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 :: Foundation :: IAsyncOperation <TResult> :: Completed :: set':パラメータ1を'Windows :: Foundation :: AsyncOperationCompletedHandler<TResult>^'から'Windows:: Foundation ::AsyncOperationCompletedHandler<に変換できませんTResult> ^ '
エラーは私には意味がありません。ラムダハンドラー関数がインラインにならないように上記のコードを書き直してみましたが、違いはありません。何が悪いのかわかりません。
何か案は?前もって感謝します。