Pfad des Programms ermitteln

hier mal eine gekürzte version meiner klasse

Code:
 // Pfad.h
 class CPfad  
 {
 public:
 	CPfad();
 	virtual ~CPfad();
 
 	static const CString GetAppPfad();
 };

Code:
 // Pfad.cpp
 CPfad::CPfad()
 {
 
 }
 
 CPfad::~CPfad()
 {
 
 }
 
 const CString CPfad::GetAppPfad()
 {
 	TCHAR szPathName[MAX_PATH];
 	::GetModuleFileName(NULL, szPathName, MAX_PATH);
 	LPTSTR pszFileName = _tcsrchr(szPathName, '\\') + 1;
 	*pszFileName = '\0';
 	return szPathName;
 }
 
Hallo zusammen,
ich stell meine Frage hier, da ich denke dass es Thematisch zusammen passt...

Wie ermittel ich die Version eines Programmes, einer dll bzw. eines COM Servers?
gibts vielleicht sowas wie getModuleFileVersion() oder so :D

Werde mich wieder willen mal in der MSDN libary umsehen...

Grüße RuFF

EDIT:

Hab grad festgestellt, dass es ne Menge dazu zu lesen gibt.
Und ich hab folgende API funktion gefunden:

Code:
HRESULT GetFileVersion (char *filename, VS_FIXEDFILEINFO *vsf);

So richtig dokumentiert ist das alles nicht, oder ich finds einfach net...
aber ich denke dass es sich hierbei auch um ein COM Interface handelt und
"char *filename" der einzige Parameter ist und
"VS_FIXEDFILEINFO *vsf" der Rückgabe Parameter ist.

Meine Frage jetzt muss *filename auf den kompletten Pfad zeigen?
Oder nur auf den Dateinamen?
Da es sich bei mir nur um COM InProc Server handelt die in einer dll realisiert sind,
wird sich der Dateiname niemals ändern.
Da ich alle aktiven dll´s im system32 Ordner unterbringen will, ist der Pfad schonmal klar ;)
Wie benutze ich die Funktion? Werde mal einfach ei bisle rumprobieren...

Grüße
 
Zuletzt bearbeitet:
Zurück