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

51

13.11.2013, 17:23

Kein Thema, ich helfe gerne (und bis es funktioniert) ;).

Also, CMake gibst du als Source Pfad den unkomprimierten Stamm-Ordner an. Wenn du die Rar-Datei also nach C: / HoverFiles entpackst, gibst du als Source-Pfad C: / HoverFiles an. Nachdem du deinen Compiler über Configure ausgewählt hast (solltest du was falsches ausgewählt haben, gehst du auf File -> Delete Cache, und drückst erneut Configure), hast du im angegebenen Build-Verzeichnis ein Visual-Studio-Projekt. Dieses kompilierst du einmal als Debug, und einmal als Release, und bindest die entsprechenden Libraries ganz normal ein. Wichtig ist, dass du zum kompilieren deinen eigenen Compiler verwendest.

Liebe Grüße,
~ EuadeLuxe ~

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

52

13.11.2013, 19:49

Yeeeeeeeeaaaaaaaaaaahhhhhhhhhhhhh!!!
Es klappt die DLL zu compilieren. :D
Vielen Dank!!! :thumbsup:
Ich werde jetzt versuchen eine NBT-Datei zu lesen.
Kannst du mir sagen, wie die NBT-File Struktur aufgebaut ist? Oder soll ich deinen Quellcode anschauen? Letzteres dauer länger. ;)

Und ich hab folgenden Code ändern müssen, weil er drei Fehler hervorrief:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
struct TAG_ByteArray : public TAG
{
public:
    TAG_Int length;
    std::shared_ptr<char> payload;// = nullptr;
};

struct TAG_String : public TAG
{
public:
    short length;
    std::string payload;
};

struct TAG_List : public TAG
{
public:
    TAG_Byte type;
    TAG_Int length;
    std::shared_ptr<void> list;// = nullptr;
};

struct TAG_IntArray : public TAG
{
public:
    TAG_Int length;
    std::shared_ptr<int> payload;// = nullptr;
};

Meine Änderungen betreffen die Auskommentierungen. Der Code befindet sich in der Datei "NBTFile.hpp". Der Fehler hieß:

Zitat


error C2864: "hf::io::nbt::TAG_IntArray::payload": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden. NBTFile.hpp

Ich hoffe das ich das durfte, in der Lizens steht ja, dass das verboten ist?! :hmm:
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

53

13.11.2013, 19:52

So, ich hab´ mir gedacht ich kompiliere dir jetzt einfach die Version für VS 10, und stelle sie dir zum Download bereit. Hier kannst du sie für VS 2010 downloaden: http://dl.garishland.de/d3/HoverFiles_vs10x86.rar.
Bind sie bitte mal ein, und schau, ob alles geht. Im Übrigen ist der Exporter jetzt auch dabei. BCE ist eine Spielerei meinerseits mit dem NBT-Format.

EDIT.: oooh, ich schreibe, während du antwortest, genial :D. Wenn ich kann schreibe ich dir heute noch eine Erklärung, ansonsten spätestens morgen.


Liebe Grüße,
~ EuadeLuxe ~


PS.. Sollte doch etwas nicht gehen, der oben genannte Link geht einwandfrei. Außerdem wirst du sowieso den Exporter benötigen ;).

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

54

13.11.2013, 20:05

:thumbsup: Toll, jetzt hab ich mir so ne mühe gemacht und dann kommt der (oder die ?( ) mit ner fertigen Version. Wehe die geht nicht!!! :D
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

55

13.11.2013, 20:32

Sooo ... jetzt hab ich alles brav eingebunden und verwiesen, schreibe folgenden Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
tbResult World::Init()
{
    NBTImporter Importer;
    Importer.loadFile("D:\\*****\\Microsoft Visual C++\\Block World\\r.0.0.mca");
    NBTFile File = Importer.getNBT();
    return TB_OK;
}

... alles compiliert perfekt, aber beim starten kommt eine Messagebox mit einer Fehlermeldung. :( Der Debugger sagt dazu das:

Zitat

Das Programm "[8776] Main.exe: Systemeigen" wurde mit Code -1073741701 (0xc000007b) beendet.

Ungefähr das gleiche hat auch die MessageBox gesagt.

Der Fehler verschwindet, wenn ich die paar Zeilen auskommentiere. Was ist da los?

EDIT: Ich hab den Fehler gerade gegoogelt. Hat wohl irgendwas mit x86 und x64 zu tun. Also ich hab Windows 7 64bit. Auf was mein Projekt kompiliert ist, weiß ich nicht, ich hab jedenfalls Win 32 Projekt ausgewählt.

Trotzdem Danke für deine Mühen! :D
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CeDoMain« (13.11.2013, 20:41)


56

13.11.2013, 21:01

Sieht so aus, als würde eine IOException (hf::io::IOException) geworfen werden. Dann bekomme ich diese Meldung. Das bedeutet, dass die angegebene Datei nicht gefunden werden kann, oder leer ist. Außerdem empfehle ich dir erstmal die Datei ins Projekt-Verzeichnis zu kopieren, und außerdem "/" statt "\\" zu verwenden, versuch´s mal. Im Übrigen wäre es gut, wenn du mir die Nachricht, die in der MessageBox steht, sagen könntest. Erstelle doch einfach mal einen einfachen Stream, und schaue, ob er die Datei finden kann, denn bei mir klappt alles reibungslos ?(

Liebe Grüße,
~ EuadeLuxe ~

PS.: Alle Fehler tun mir Leid.
PS2.: Wenn du Endianness meinst, nein, die habe ich behandelt ;)
PS3.: Ich bin ein Er.
PS4.: Ich habe zu viele PS

57

13.11.2013, 21:14

Hier eine Hilfe, die auch das Exportieren beinhaltet. Ich gehe jetzt schlafen ;), bis dann!
http://dl.garishland.de/d3/NBTHelp.pdf

#EDIT.: Das macht nichts, die Lizenz habe ich geschrieben, und ich habe dir den Source gegeben. Eig. ist sie ja sogar für dich geschrieben, das macht nichts. Die Fehler kamen bei mir nicht, erst als ich mit VS 10 kompiliert habe. Muss wohl am Compiler liegen ;).

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »EuadeLuxe« (13.11.2013, 21:21)


CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

58

13.11.2013, 21:26

Zitat

Die Anwendung konnte nicht korrekt gestartet werden (0xc000007b).
Klicken SIe auf "OK", um die Anwendung zu schließen.

... das ist der Inhalt der MessageBox. :D
Das ist mein Projektverzeichnis ... hast du etwa was gegen meinen Pfad? :nono:
Die Backslash zu ändern hat nichts gebracht. Ich hab die genommen weil das bei .Net so gemacht wird, aus Gewohnheit.
Wie meinst du das mit dem Stream? Gib mir ein Quellbeispiel, ich werde es dann ausprobieren.

EDIT: Auch wenn ich nur die erste Zeile: "NBTImporter Importer;" hinschreibe, bekomme ich den Fehler, am Stream kanns also eigentlich nicht liegen.
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

59

13.11.2013, 21:34

Es ist spät, aber ich habe noch eine Idee: hast du die Library als DLL erstellt? Ich habe sie statisch gelinkt. Evtl. könnte es auch daran liegen, dass du HoverFilesd.lib im Release linkst oder umgekehrt. Du musst d im Debug, und ohne d im Release nehmen. Versuch mal meine Kompilation.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »EuadeLuxe« (13.11.2013, 21:39)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

60

13.11.2013, 22:17

Weder Compiler-Varianet, noch debug/release sollten relevant sein, solange es kompiliert und gelinkt werden konnte. Der Bug ist wohl eher direkt im Code zu suchen oder ein unerwarteter Fehler nicht richtig abgefangen (z.B. Datei nicht nur lesend, sondern lesend+schreibend auf einem Verzeichnis geöffnet, was nur gelesen werden kann?).
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]

Werbeanzeige