Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Vincento

Frischling

  • »Vincento« ist der Autor dieses Themas

Beiträge: 6

Beruf: Schüler

  • Private Nachricht senden

1

23.11.2011, 22:25

C++ Programm findet ohne Compiler .bmp nicht

Hi, ich bin neu hier und fange gleich mit einer Frage an:

Ich habe mit VC++ 2010 und SFML ein Projekt geschrieben, in dem ich einige .bmp lade. Wenn ich das ganze als Debug oder Release auf meinem Computer ausführe (egal ob mit oder ohne Compiler) funktioniert es hervorragend. Wenn ich aber alle Dateien, sowie den Release und msvcp100.dll, msvcr100.dll in einenem Ordner auf einem anderen Computer ausführe findet das Programm die .bmp´s nicht mehr.

Ich habe es schon mit kompletter Pfadangabe über GetModuleFileName ( ohne "Programm.exe" natürlich) probiert, aber da, trotz korrektem Pfad, kein Ergebnis. Das ganze lauft mit Compiler auf Win 7, Vista und Xp, ohne habe ich es bisher nur auf Xp versucht.

Bei Google habe ich nichts gefunden, was irgendwie hilfreich wäre. :(

Falls jemand eine Idee hat, ich bin für jede Antwort dankbar.

Gruß Vincento

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

2

23.11.2011, 22:32

hast du die .bmp deinem projekt korrekt hinzugefügt?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

23.11.2011, 22:36

Liegt die .bmp denn auch wirklich dort wo das Programm danach sucht? Klingt so als wär das nämlich nicht der Fall ;)

Vincento

Frischling

  • »Vincento« ist der Autor dieses Themas

Beiträge: 6

Beruf: Schüler

  • Private Nachricht senden

4

23.11.2011, 22:37

Danke für die schnelle Antwort, aber:

Muss man die bmp´s als Ressourcen hinzufügen? Das habe ich nicht getan, sondern:

C-/C++-Quelltext

1
if(!m_pSprite[p_Sprite].m_pImage->LoadFromFile(p_sData))


Funktioniert auf die Art im Compiler auch. Image ist eine SFML-Klasse, was da intern passiert weiß ich nicht.

Und @Dot:
ja, im Ordner data\...\ liegt die Datei, data liegt im Rootverzeichniss des Programmes.

Gruß Vincento

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

23.11.2011, 22:56

Und deine exe wird auch mit diesem Verzeichnis als Arbeitsverzeichnis ausgeführt und sucht dort danach? Kann eigentlich nicht sein ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

24.11.2011, 07:09

Nur mal kurz nebenbei: "Funktioniert auf die Art im Compiler auch" ist nicht ganz korrekt. Der Compiler ist das Ding, was Dein Programm übersetzt. Visual Studio ist eine Entwicklungsumgebung. Du bist also nicht "im Compiler", sondern nur "in der IDE".
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

7

24.11.2011, 10:45

Dein Problem ist wahrscheinlich, dass du die bmps relative zum aktuelle Verzeichnis lädst. Wenn du das ganze aus der IDE, also VS2005 startest, dann ist das aktuelle Verzeichnis das Verz. in dem deine VS Projek datei liegt. Wenn du das ganze aber per Doppelklick aus dem Windows Explorer aufrufst, ist dein aktuelles Verzeichnis das Verzeichnis in dem deine ausführbare Datei liegt. Du kannst das ganz einfach prüfen, ob das so ist, indem du dein Prog. einmal aus der IDE und einmal von der Konsole oder aus dem Windows Explorer aufrufst. Da sollte das Problem offensichtlich werden.

Thoran
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Vincento

Frischling

  • »Vincento« ist der Autor dieses Themas

Beiträge: 6

Beruf: Schüler

  • Private Nachricht senden

8

24.11.2011, 11:54

@ BlueCobold: stimmt, ich meinte VC
@ Thoran: Das habe ich ja schon getan:
ich habe die exe in das Verzeichniss mit dem Ordner "data" kopiert und ausgeführt. Bei mir funktioniert es bei jemand anderem findet die exe nichts.
Außerdem habe ich ja auch mit GetModuleFileName den konkreten Pfad getestet, aber da das selbe, auf einem anderen PC geht es nicht :pinch:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

24.11.2011, 12:07

Dann würde ich einfach mal vermuten, dass die Datei auf dem anderen PC einfach nicht dort ist. Oder in einem Ordner liegt, wo der Benutzer nicht genügend Rechte hat...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

10

24.11.2011, 12:11

Du benutzt aber keine absoluten Pfade oder? Sowas wie C:\Spiele\Benutzer12345\Spiel\data oder sowas?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige