我需要将 WebRTC c++ 库包装到 WinRT 组件中,并从我的 UWP/C# 应用程序中使用它。有一篇很好的文章how to use native c++ in uwp描述了我遵循的所有集成步骤。简要地:
- 我已经创建了 Dll/C++
DLL1
库并链接了我的静态库libwebrtc_full.a
。拨打了所有必要的电话 - 然后,我在我的 WinRT/C++ 项目中引用了 DLL
WindowsRuntimeComponent1
并成功创建了公共 ref 类MyClass
,它从DLL1
- 我的 UWP 应用程序可以正确
App1
查看MyClass
,并且它的公共方法App1
引用了 WindowsRuntimeComponent。
在运行应用程序时,一旦我尝试使用其中一个实现的类,就会出现运行时异常WindowsRuntimeComponent1
The specified module could not be found.
(Exception from HRESULT: 0x8007007E)
我创建并上传了一个示例项目以将我的问题重现到GDrive我在示例项目中也包含了我的静态libwebrtc.a
,以防它是问题的根本原因。
我已经经历了关于 SO 的类似问题,与我的问题最相似的是这个问题。不同之处在于我正在引用该项目并且仍然得到相同的异常。
编辑1:
这是MyClass
这样的:
namespace WindowsRuntimeComponent1
{
public ref class MyClass sealed
{
public:
MyClass(int sampleRate);
virtual ~MyClass();
void ProcessFrame(const Platform::Array<short>^ mic, const Platform::Array<short>^ speaker, const Platform::Array<short>^ output);
private:
void* p;
};
}
EDIT2:
我gflags App1.exe +sls
按照评论中的建议运行,但我没有看到缺少什么依赖项。下面是带有堆栈跟踪的屏幕截图: