Media Foundation Transform を使用して、XAML/C# で表示されるビデオ ストリームに効果を適用するコードがあります。実際には、Microsoft が提供する Media Capture サンプルです。DirectX Toolkit を使用したかったので、C++ アプリケーションで DirectX Toolkit への参照を追加しました。ビルドは成功しましたが、次のエラーに直面しました。
warning LNK4197: export 'DllGetActivationFactory' specified multiple times; using first specification
warning LNK4197: export 'DllCanUnloadNow' specified multiple times; using first specification
warning LNK4197: export 'DllGetActivationFactory' specified multiple times; using first specification
warning LNK4197: export 'DllCanUnloadNow' specified multiple times; using first specification
error LNK2005: _DllCanUnloadNow@0 already defined in dllmain.obj
error LNK1169: one or more multiply defined symbols found
ここで詳しく説明されています: Windows::Storage::ApplicationData::Current Not Found in C++
ただし、その投稿の手順に従った後、別のエラーに直面しました。C# コードが WinRT dll を呼び出そうとすると、
await m_mediaCaptureMgr.AddEffectAsync(Windows.Media.Capture.MediaStreamType.VideoPreview, "GrayscaleTransform.GrayscaleEffect", null);
詳細なしで新しい例外をスローします。例外テキストは
System.Exception: Error in the DLL
at Windows.Media.Capture.MediaCapture.AddEffectAsync(MediaStreamType mediaStreamType, String effectActivationID, IPropertySet effectSettings)
私が行ったのは、コンパイラを介して DLL を GreyscaleTransform にリンクしただけで、追加のコードはまだ呼び出されていません。
これを引き起こす可能性のあるもの、またはトラブルシューティングの最善の方法について何か考えはありますか?
どうもありがとう、ステファン