Die kurze Antwort ist "Nein". Nachdem ich weit und breit gesucht habe, gibt es keine Möglichkeit, VC ++ dazu zu bringen, das zu tun, was ich möchte, und höchstwahrscheinlich auch keinen anderen Compiler.
Das Hauptproblem ist, dass der main()
Einstiegspunkt, den die meisten Leute kennen und lieben, nicht der eigentliche Einstiegspunkt in C ++ - Programmdateien ist: Der Compiler muss viele Initialisierungsarbeiten durchführen, um die "C ++ Run Time" -Bibliothek zu erhalten verwendbarer Zustand, sowie Globals, Statiken und dergleichen initialisieren. Diese Initialisierung verwendet in freigegebenen Bibliotheken anderen Code als in ausführbaren Dateien und es gibt keine Möglichkeit, sich wie ein anderer zu verhalten.
Eine Möglichkeit, die möglich ist, besteht darin, die gemeinsam genutzte Funktionalität in eine DLL zu integrieren und die DLL als Ressource in eine speicherprogrammierte Region der ausführbaren Datei zu laden (es gibt mehrere Codebeispiele wie man das mit VC ++ im Stackoverflow und an anderen Stellen im Web macht. Jetzt kann ein anderes Programm dasselbe tun, indem es die DLL aus der ausführbaren Paketdatei lädt.