den path des ordners selbst herausfinden?
-
ich brauche einen befehl("getpath")der den path des projektordners(spiel1) herausfindet und dann sie bei (form1)this->BackgroundImage = gcnew Bitmap("getpath"/bild1); einsetzt.
-
etl schrieb:
ich brauche einen befehl("getpath")der den path des projektordners(spiel1) herausfindet
Und was genau passt an unseren Vorschlägen nicht ?
-
Und dieser Ordner, "spiel1", was ist das bzw. wo ist der überhaupt?
Ist das das "Installationsverzeichnis" Deiner Anwendung (also das Verzeichnis, wo sich deine Progamm-Datei (EXE File) befindet) bzw. ein Unterordner dessen?
-
DeathCubeUK schrieb:
Und dieser Ordner, "spiel1", was ist das bzw. wo ist der überhaupt?
Ist das das "Installationsverzeichnis" Deiner Anwendung (also das Verzeichnis, wo sich deine Progamm-Datei (EXE File) befindet) bzw. ein Unterordner dessen?
Falls ja, siehe:
* https://www.c-plusplus.net/forum/p2434339#2434339
* https://www.c-plusplus.net/forum/p2434346#2434346
-
es sind bilder im projektordner und deren path soll herausgefunden werden
-
Woher soll die Anwendung (EXE) wissen, wo der Projektordner (für die Kompilation) gewesen ist? Du mußt die entsprechenden Dateien in den Ausgabeordner kopieren bzw. kopieren lassen (CopyToOutputDirectory = CopyAlways oder CopyIfNewer).
-
was ist ein ausgabeordner bzw. wo ist es?
-
Letzten Endes wirst Du ja das "fertige" Programm, also die EXE-Datei (plus evtl. zugehörige DLL's), an den Kunden/Benutzer ausliefern!
Dann spielt aber der "Projektordner" überhaupt keine Rolle mehr, sondern viel eher das Verzeichnis, wo die EXE-Datei auf dem Rechner des Kunden/Benutzer liegt - das "Installationsverzeichnis".
Alle weiteren Daten, die zu Deinem Programm gehören, sollten zusammen mit deiner EXE-Datei in der das "Installationsverzeichnis" (oder einen Unter-Ordner davon) installiert werden.
(Wie Du zur Laufzeit das Verzeichnis ermitteln kannst, wo sich Deine EXE-Datei befindet, wurde ja schon x-mal erklärt...)
-
wie könnte ich es einsetzen?und ich benutze c++ cli, kein "reines" c++
-
etl schrieb:
wie könnte ich es einsetzen?und ich benutze c++ cli, kein "reines" c++
C++/CLI ist eine Erweiterung von C++, so wie C++ im Wesentliche eine Erweiterung von C ist.
Daher "funktioniert" in C++/CLI alles, was in "reinem" C++ funktioniert, ebenfalls - bloß gilt das nicht in die Umgekehrte Richtung, weil in "reinem" C++ all die
.NET
-spezifischen Dinge fehlen.So, eine Möglichkeit, wie man zur Laufzeit das Verzeichnis herausfinden kann, wo sich Deine EXE-Datei befindet hatte ich ja schon erwähnt:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspxDas kann dann, zum Beispiel, wie folgt aussehen:
#include <Windows.h> using namespace System; System::String^ getInstallPath(void) { wchar_t fileName[1024]; const DWORD ret = GetModuleFileNameW(NULL, fileName, 1024); if((ret > 0) && (ret < 1024)) { //Replace forward-slashes with back-slashes while(wchar_t *const slash = wcschr(fileName, L'/')) { *slash = L'\\'; } //Cut off the file part from module path if(wchar_t *const lastDelimiter = wcsrchr(fileName, L'\\')) { *lastDelimiter = L'\0'; } return gcnew System::String(fileName); } return nullptr; } int main(array<System::String ^> ^args) { System::String ^installPath = getInstallPath(); if(installPath != nullptr) { Console::WriteLine(L"My installation directory is:"); Console::WriteLine(installPath); } else { Console::WriteLine(L"Something went wrong :-("); } return 0; }