C++ 在nVidia Optimus中以编程方式选择集成图形

C++ 在nVidia Optimus中以编程方式选择集成图形,c++,windows,nvidia,C++,Windows,Nvidia,关于如何在Windows平台上运行时选择nVidia离散适配器,有许多问题和答案。最简单的方法是导出NvOptimusEnablement变量,如下所示: extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; 我有相反的要求。我需要在运行时为我的应用程序设置集成图形,无论NVIDIA控制面板中首选的图形处理器是什么。此变量不适用于此。我如何做到这一点?下面的代码注册应用程序配置文件,以便驱动程序自动为指定

关于如何在Windows平台上运行时选择nVidia离散适配器,有许多问题和答案。最简单的方法是导出NvOptimusEnablement变量,如下所示:

extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;

我有相反的要求。我需要在运行时为我的应用程序设置集成图形,无论NVIDIA控制面板中首选的图形处理器是什么。此变量不适用于此。我如何做到这一点?

下面的代码注册应用程序配置文件,以便驱动程序自动为指定的应用程序选择离散卡,也许您可以更改它,使其使用集成卡?

为什么您的应用程序会使用高性能图形卡,除非您使用类似DirectX的东西?如果你使用DirectX,设置你的适配器是英特尔适配器,它不会使用英伟达一…我想使用DirectX,但是在集成图形适配器上,因为Nvidia一个在我的任务上不能正常工作。因此,我想通过编程方式选择一个集成适配器,直到视频驱动程序修复为止。请向我们展示您的DirectX初始化。另外,请检查命令4:@Goz这是您的DirectX初始化问题的答案。得到正确的设备是我正在做的选择。没关系。问题是,如果以这种方式选择设备,则无法访问所需的DirectX功能。只有在nVidia控制面板中选择集成适配器,我才能正确访问它。这是我使用的设备的已知驱动程序错误。因此,我可以选择在所有使用我的程序的计算机上的nVidia控制面板中选择集成适配器,或者以编程方式选择集成适配器。