2

我正在开发一个使用 PInvoke 调用非托管 C++ DLL 函数的 C# WPF 应用程序。PInvoke 函数是从其单元状态设置为 MTA 的 WPF 线程调用的。PInvoke 调用工作正常。

非托管 C++ DLL 使用 DirectShow 函数创建一个窗口来显示视频源。例如。 CoInitializeEx(NULL, COINIT_MULTITHREADED)在调用 PInvoke 函数以初始化 DirectShow 时调用。DirectShow 代码工作正常(没有看到错误)。它应该打开一个窗口并显示视频源。但是窗口没有打开(它打开了一会儿然后消失了)。

知道为什么直接显示窗口没有打开。据我所知,没有什么能阻止我从非托管 dll 打开一个窗口。

编辑:当我从普通的 C# 应用程序(无 wpf)调用 DLL 时,我得到了相同的结果。

4

0 回答 0