Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows 7上的wpf窗口中创建OpenGL控件时出错 我在C++中创建了一个OpenGL控件,希望在WPF应用程序中使用它。我已经成功地完成了这项工作,它在Vista和XP机器上运行良好,但当我在Windows7机器上打开我的项目时,WPF设计窗口将不会显示。当我尝试运行该程序时,出现异常:_C++_Wpf_Opengl_Windows 7 - Fatal编程技术网

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

在windows 7上的wpf窗口中创建OpenGL控件时出错 我在C++中创建了一个OpenGL控件,希望在WPF应用程序中使用它。我已经成功地完成了这项工作,它在Vista和XP机器上运行良好,但当我在Windows7机器上打开我的项目时,WPF设计窗口将不会显示。当我尝试运行该程序时,出现异常:,c++,wpf,opengl,windows-7,C++,Wpf,Opengl,Windows 7,无法创建程序集“LabUserInterface,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”中定义的“Window1”的实例。调用目标引发了异常。标记文件“Window1.xaml”第1行第9位出错 “LabUserInterface”是我的OpenGL工具所在的地方。此外,我在WPF窗口中也有此错误: “在程序集“PresentationFramework,版本=3.0.0.0,区域性=中性,PublicKeyToken=31bf3

无法创建程序集“LabUserInterface,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”中定义的“Window1”的实例。调用目标引发了异常。标记文件“Window1.xaml”第1行第9位出错

“LabUserInterface”是我的OpenGL工具所在的地方。此外,我在WPF窗口中也有此错误:


“在程序集“PresentationFramework,版本=3.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”中键入'MS.Internal.Permissions.UserInitiatedNavigationPermission'未标记为可序列化。”

我认为您的权限错误与OpenGL无关。可能它是在试图收集有关实际错误的信息时生成的(这可以解释尝试使用序列化程序的原因),尝试注释掉自定义控件的所有内部,以便它只是从基类继承,然后重试(好的,您可能需要保留一些属性定义)。如果这样可以解决问题,请缓慢地添加实现,直到找出问题的原因

如果仍然失败,您可能需要打开Visual Studio的一个副本,并使用它在WPF设计器中打开项目的情况下调试Visual Studio的第二个副本。然后,您可以中断异常,在调用堆栈上下查看变量,并对问题进行一般性的故障排除

您是否在工作和非工作的开发环境中都有相同版本的Visual Studio和相同的补丁程序?VisualStudio修补程序比底层操作系统更可能产生此问题。使用OpenGL,视频驱动程序也可能很重要,因此发布这些信息。

有两种可能性:

1) UAC、路径问题、依赖路径问题、.NET安全性或某些其他权限问题(可能以管理员身份运行)以进行测试。或者确保您的程序集对所有依赖项都具有可见性并具有正确的权限(即,如果在bin文件夹中或在app旁边,则为private;如果在gac中或在app space之外,则为public)

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

<>我知道,当你在.NET中做C++控制时,安全问题是个首要问题。请确保您的C++控件对OpenGL DLL(如果共享)具有可见性,并且它们在加载路径中(如果它们不能确保它们在私有程序集文件夹(bin)中可见或局部的话,则将它们全部丢弃在C:\Windows \Stase32中。
我们在PVR图像工具包中遇到了同样的问题,结果发现一个dll不在依赖路径中。DependencyWalker是一个很好的检查工具:

谢谢Ryan,DependencyWalker帮了大忙。事实证明,我在WPF项目的调试文件夹中也需要glut32.dll,这是我在其他计算机上不需要的。

它似乎取决于特定的visual studio开发环境设置,visual studio在其中查找解决方案所依赖的库。