Well I tried to do it in a C++ dll but it didn't work:
geforceexperience.h
C++ Code:
#pragma once
#ifdef GEFORCEEXPERIENCE_EXPORTS
#define GEFORCEEXPERIENCE_API __declspec(dllexport)
#else
#define GEFORCEEXPERIENCE_API __declspec(dllimport)
#endif
extern "C" GEFORCEEXPERIENCE_API void __stdcall enable_geforce_experience();
extern "C" { _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; }
geforceexperience.cpp
cpp Code:
#include "pch.h"
#include "geforceexperience.h"
void __stdcall enable_geforce_experience() {
}
geforceexperience.def
Code:
LIBRARY
EXPORTS
enable_geforce_experience=enable_geforce_experience
Tried putting the extern "C" { _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; } inside the enable_geforce_experience() method but it didn't work because it can only be used outside. So I made it empty as a dummy method. Plugged it into some random VB6 project that had a fullscreen DirectX thing going as an API, called it, and nothing. Absolutely nothing.
I dunno if making a COM object would work. But I'm gonna have to try tomorrow. It's 4am here now rofl!