Well I tried to do it in a C++ dll but it didn't work:

geforceexperience.h
C++ Code:
  1. #pragma once
  2.  
  3. #ifdef GEFORCEEXPERIENCE_EXPORTS
  4. #define GEFORCEEXPERIENCE_API __declspec(dllexport)
  5. #else
  6. #define GEFORCEEXPERIENCE_API __declspec(dllimport)
  7. #endif
  8.  
  9. extern "C" GEFORCEEXPERIENCE_API void __stdcall enable_geforce_experience();
  10. extern "C" { _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; }

geforceexperience.cpp
cpp Code:
  1. #include "pch.h"
  2. #include "geforceexperience.h"
  3.  
  4. void __stdcall enable_geforce_experience() {
  5.    
  6. }

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!