2009-05-07 2 views
0

Ich habe ein VS generiert C++ Win32 DLL-Projekt. Es hat die folgenden Dateien:Stripping Down 2008 Win32 DLL zu einer Datei

stdafx.h targetver.h myProject.h dllmain.cpp MyProject.cpp stdafx.cpp

I targetver.h entfernen können, und verschmelzen dllmain.cpp in myProject.cpp. Was kann ich noch tun, um die einfachste Dateistruktur zu erhalten, vorzugsweise eine Datei? Ich muss diese Codedatei dynamisch ausgeben und sie in eine Win32-DLL erstellen.

Antwort

1

Wenn Sie eine minimalistische Dateistruktur wünschen, können Sie die Dateien selbst erstellen. Starten Sie ein leeres Projekt oder löschen Sie alle Dateien. Hey, mach einfach einen Ordner, schreib main.cpp und compile it from the command line with cl.

Nur wenige IDEs versuchen wirklich, Dateien zu minimieren, wie Sie es versuchen - aber wenn Sie das Projekt erstellen, können Sie ein wenig zurückschneiden: stdafx. [H, cpp] sind für vorkompilierte Header, die Sie wann deaktivieren können Erstellen des Projekts.

Das heißt, ich sehe nicht wirklich den Wert in der Minimierung der Menge an Quellcode in einem kompilierten Sprachprojekt - es wird keinen bedeutsamen Einfluss auf die Anzahl der Ausgabedateien/dlls haben, und richtig verwendet, Die Verwendung von mehr Dateien hilft nur der Klarheit des Codes.

0

IIRC, myProject.h und myProject.cpp enthalten beide ein Beispiel für eine exportierte Klasse. Sie können diese einfach löschen.

und stdafx.h werden für die standardmäßige vorkompilierte Headerdatei verwendet. Wenn Sie die Einstellung deaktivieren, für die ein vorkompilierter Header erforderlich ist, sind diese Dateien ebenfalls nicht erforderlich.

1

Zusätzlich zu dem, was Andy sagte, können Sie die myProject Header und Implementierungsdateien auch mit dllmain.cpp zusammenführen. Aber warum nicht einfach diese Dateien behalten und die vsproj-Datei zur Laufzeit erstellen?

1

Oder Sie könnten einfach ein leeres Projekt erstellen.

0

Sie könnten Ihre generierte Datei in ein bestehendes Projekt mit mehreren Dateien einschließen. Auf diese Weise können Sie eine Shell eines komplizierten Projekts haben und nur etwas kleiner ausgeben, wie eine einfache Funktion.

Zum Beispiel:

#include <system_stuff> 

void main() 
{ 
    Go(); 
} 

#include "generated_file_that_has_method_go.cpp" 

void other_code() 
{ 
} 
Verwandte Themen