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

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

41

23.08.2010, 16:52

Hallo SaRu,

Als Administrator habe ich es bereits ausgeführt, steht auch in der Titelleiste.

Bei den Postbuildereignissen habe ich auch bereits alles entfernt, hat allerdings auch nichts gebracht.

Hier mal der Inhalt:
COPY $(OutDir)$(TargetFileName) Bin
COPY $(OutDir)$(TargetFileName) $(WinDir)\System32
COPY $(OutDir)$(TargetName).lib Lib

Da ich nicht weiß was ich da anpassen kann, habe ich es auch erst mal gelassen.

MfG

42

23.08.2010, 17:15

Hallo rikiel,

Schau bitte nach ob sich die Dateien, die kopiert werden sollen dort befinden wo der Copy-Befehl sie erwartet:
.\Debug\TriBase.dll
.\Debug\TriBase.lib

Alternativ kannst du auch mal folgende Befehle ausprobieren, bei mir funktionieren die:

copy $(Configuration)\$(ProjectName).dll .\Bin
copy $(Configuration)\$(ProjectName).dll $(WinDir)\System32
copy $(Configuration)\$(ProjectName).lib .\Lib

Die sind nicht so optimal, wie die, die bereits bei dir vorhanden sind, stellt lediglich eine Alternative dar. Kannst - nur zum Test - auch auf die Variablen komplett verzichten:

copy .\Debug\TriBase.dll .\Bin
copy .\Debug\TriBase.dll C:\Windows\System32
copy .\Debug\TriBase.lib .\Lib

Wenn im Pfad oder gar Dateinamen Leerzeichen enthalten sein können, gerade bei der Nutzung von Variablen sieht man das ja nicht, dann setze vorsichtshalber die Pfade in Anführungszeichen.

Gruß
SaRu_

*EDIT*:


Bei den Postbuildereignissen habe ich auch bereits alles entfernt, hat allerdings auch nichts gebracht.


Soll das heißen, obwohl du die Postbuildereignisse im Feld Befehlszeile komplett rausgelöscht hast, die Einstellungen übernommen hast und das Projekt neu erstellt hast, taucht die gleiche Fehlermeldung immernoch auf?

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

43

23.08.2010, 21:06

Nein, dann kommt eine Windows - Fehlermeldung die sagt, dass ...\Debug\TriBase.dll nicht gestartet werden kann. Die Datei ist allerdings in dem Verzeichnis.

Die TriBase.lib und TriBase.dll sind auch in dem Debug Verzeichnis.

44

23.08.2010, 21:14

Ok jetzt versteh ich nicht, was dein Problem ist?! Wenn du sowohl die .lib als auch die .dll kompiliert bekommst, wo scheitert es denn dann jetzt?

Gruß
SaRu_

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

45

23.08.2010, 21:41

Wenn ich versuche die Dateien der TriBase.vcproj zu kompilieren kommt die oben erwähnte Fehlermeldung.

Allerdings kann mittlerweile die Engine benutzen, obwohl ich sie nicht selber kompilieren kann.

MfG

46

23.08.2010, 21:47

Vor lauter "starten" und "kompilieren" bin ich etwas durcheinander gekommen... Die TriBase Engine funktioniert also bei dir, du kannst sie nur nicht selbst kompilieren, weil beim Erstellen des Projekts eine Fehlermeldung kommt, dass die TriBase.dll nicht gestartet werden kann?!

Es geht doch ums Erstellen nicht ums "Starten" oder? Wobei eine DLL ja sowieso keine ausführbare Datei (.exe) ist, die man in dem Sinne starten kann. Vielleicht gibst du uns jetzt noch einmal eine detailierte Beschreibung, was du genau tust, in welcher Reihenfolge, welche Meldungen kommen. Egal ob Fehler oder nicht...


Gruß
SaRu_

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

47

23.08.2010, 22:29

OK, ich versuche es mal ganz von vorne.

  1. Ich kopiere den Ordner "TriBase" von der CD auf meine Festplatte
  2. Ich öffne die Datei TriBase 2005.vcproj mit Visual Studio 2010 und Konvertiere diese.
  3. Als nächstes füge ich die 3 .h und .lib Verzeichnisse vom DX SDK, Windows SDK und der TriBase hinzu
  4. Dann entferne ich die 9 bei der dxerr9.lib, dxerr9.h, DXGetErrorString9 und DXGetErrorDescription9
  5. Dann ändere ich den #include "mfc/afxres.h" Befehl in #include <windows.h> und füge das Makro #define IDC_STATIC -1 hinzu.
  6. Wenn ich es nun versuche zu Kompilieren erscheint der folgende Fehler:

    error MSB3073: Der Befehl "COPY .\Debug\TriBase.dll Bin
    COPY .\Debug\TriBase.dll C:\Windows\System32
    COPY .\Debug\TriBase.lib Lib

    :VCEnd" wurde mit dem Code 1 beendet.

  7. Wenn ich nun, wie von dir Vorgeschlagen, es ohne Einträge in die Postbuildereignisse versuche zu Kompiliere kommt die Windows-Fehlermeldung (in einem neuem Fenster):

    Das Programm "E:\TriBase Engine\.\Debug\TriBase.dll" kann nicht gestartet werden. Das System konnte die angegebene Datei nicht finden.

So und weiter sind wir noch nicht gekommen ...


Und danke noch mal für eure gute Hilfe :)

MfG

48

23.08.2010, 22:42

Ok jetzt weiß ich zumindest Bescheid wo wir dran sind... Danke.
(...) versuche zu Kompiliere kommt die Windows-Fehlermeldung (...)

Erstmal die Frage: Was machst du an dieser Stelle genau? Rechtsklick auf das Projekt -> "Erstellen" ? Oder drückst du F7 oder vielleicht gar F5 (was eigentlich das Debugging startet, zu vor allerdings das Projekt nach Möglichkeit erstellt). Is mir jetzt neu, dass bei Erstellen eines Projekts sich ein extra Windows-Fenster öffnet und das dort vom "Starten" die Rede ist. Beim eigentlichen Erstellen des Projekts (also kompilieren & linken - mehr musst / kannst du bei der TriBase Engine nicht machen) sollten alle Ausgaben - egal ob Erfolg oder Fehler - im Ausgabefenster von VC++ 2010 angezeigt werden. Ein Starten der .DLL (z.B. per F5) ist nicht möglich.

Gruß
SaRu_

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

49

23.08.2010, 22:53

Ich habe bisher immer mit F5 Debuggt.
Sollte man das anders machen?

Aber auch mit Rechtsklick auf das Projekt -> Erstellen kommt der selbe Fehler

Und was meinst du mit deinem letzten Satz. Wie soll ich die .DLL Datei starten?

50

23.08.2010, 23:05

Ich wollte eigentlich sagen, dass du, wenn du auf F5 drückst, das Projekt bzw. Programm zum Debugging startest. Bei Änderungen am Quellcode wird hier erst das Projekt neu erstellt und es danach - sofern alles glatt ging - gestartet. Ich wollte also anmerken, dass es durchaus möglich ist, dass ein Projekt zwar ohne Fehler zu erstellen ist, es während der Laufzeit - also wenn es dann tatsächlich gestartet wurde - aber trotzdem zu Fehlern / Abstürzen kommen kann. Eine DLL (Dynamic Link Library) ist keine EXE (Executable - also Ausführbare Datei). Demnach kannst du eine DLL nicht starten. Verwende also einfach zum Erstellen des Projekts die Taste F7 oder per Rechtsklick -> Erstellen und nicht F5.

Wenn allerdings beim reinen Erstellen der DLL schon der Fehler auftaucht, dann ist das irgendwie merkwürdig. Ich werd mir mal die CD raussuchen und mal reinschauen... keine Ahnung ob ichs heute Nacht noch schaffe...

Gruß
SaRu_

Werbeanzeige