1

我的代码使用媒体基础转换将效果应用于 XAML/C# 中呈现的视频流。它实际上是 Microsoft 提供的 Media Capture 示例。我想使用 DirectX Toolkit,所以我在 C++ 应用程序中添加了对它的引用。构建成功但是我遇到了以下错误:

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,而无需调用任何其他代码。

关于可能导致此问题的任何想法或解决问题的最佳方法是什么?

非常感谢,斯特凡

4

0 回答 0