c++ - 在 Windows 7 的 wpf 窗口中创建 OpenGL 控件时出错

标签 c++ wpf opengl windows-7

我已经用 C++ 创建了一个 OpenGL 控件,并希望在 WPF 应用程序中使用它。我已经成功地完成了这项工作,它在 Vista 和 XP 机器上运行良好,但是当我在 Windows 7 机器上打开我的项目时,WPF 设计窗口将不会显示。当我尝试运行程序时出现异常:

“无法创建在程序集‘LabUserInterface、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null’中定义的‘Window1’的实例。调用的目标已抛出异常。标记文件中有错误'Window1.xaml' 第 1 行位置 9。”

'LabUserInterface' 是我的 OpenGL 东西所在的地方。我在 WPF 窗口中也有这个错误:

“在程序集‘PresentationFramework,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35’中键入‘MS.Internal.Permissions.UserInitiatedNavigationPermission’未标记为可序列化。”

最佳答案

两种可能性:

1) 要测试的 UAC、路径问题、依赖路径问题、.NET 安全或其他一些权限问题(可能以管理员身份运行)。或者确保您的程序集对所有依赖项和正确的权限具有可见性(即,如果在 bin 文件夹中或在应用程序旁边是私有(private)的,如果在 gac 中或在应用程序空间之外是公共(public)的)。

2) 此外,请确保您可以在 win7 机器上运行 OpenGL。可能是视频驱动程序或试图枚举卡上的视频配置文件的东西。更新您的视频卡驱动程序。如果使用共享的 OpenGL 版本,请确保它存在于机器上。

我知道当您在 .NET 中创建 C++ 控件时,安全问题是首要问题。确保您的 C++ 控件可以看到 opengl dll(如果共享)并且它们位于加载路径中(如果所有其他方法都无法确保它们可以被看到或在私有(private)中本地,则将它们全部放在 C:\windows\system32 中程序集文件夹(bin))。

我们在 PVR 的图像工具包中遇到了同样的问题,结果发现一个 dll 不在依赖路径中。 DependencyWalker 是一个很好的工具,用于检查:http://dependencywalker.com/

关于c++ - 在 Windows 7 的 wpf 窗口中创建 OpenGL 控件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245195/

相关文章:

c++ - 为 Boost.Python 包含带有 Bjam 的系统库

c++ - 在常数时间内修剪 C++ 字符串

c# - 将像素写入新的writeablebitmap

c++ - GLM 矩阵中的旋转方向,使用四元数

c++ - 链接列表错误,C++

c++ - Unordered_map 迭代器失效

java - 根据 ID 在 spritesheet 中显示纹理

android - GLSL IF 速度与乘数

c# - SQL Server-枢轴

wpf - 绑定(bind)到 datacontext parent-WPF 的属性