Hilfe bei der Lösung eines Problems beim Importieren einer Funktion aus einer DLL - Seite 8

 

Lies Google und es sieht so aus, als hätte ich mit stdafx.h recht :-))

Nun... ja... Man lebt und lernt... :-)

 

Ja, ja.

Oft enthält der erste Link alles, was Sie brauchen.

 

Interessant... und in Bilder 6 flucht niemand wirklich über die Datei stdafx.h, nur 17 Warnungen und die Datei wiegt halb so viel.

Hmmm...ja...

Ich habe jetzt 2 scheinbar funktionierende Bibliotheken :-). Ich werde sie bei ihrer Arbeit mit den Daten überprüfen. Ich hoffe wirklich auf ein positives Ergebnis :-)))

 
jartmailru писал(а) >>

Ähm ... Nun, ich muss alle Dateien in das Projekt einfügen

die Sie mir geschickt haben.

.

Ehrlich gesagt wäre es mir nicht einmal in den Sinn gekommen, darüber nachzudenken.

welche Datei aus der Menge der Dateien in der *Bibliothek*

zu dem Projekt hinzuzufügen.

Ich dachte, sie würden automatisch über die h-Dateien nach oben gezogen. Das erste Mal, dass ich kompiliert und gelinkt mit nur die svd.cpp-Datei, jedoch gab es keine Fehler, bis ich extern hinzugefügt. Die Datei svd.cpp hat einen Link zu ihrer h-Datei und verweist auf andere h-Dateien, die wiederum cpp-Dateien mit demselben Namen verwenden. Das scheint genauso viel Sinn zu machen, wie ich dachte. Ich will mich nur ein bisschen rechtfertigen, damit du nicht auf die Idee kommst, dass ich total blöd bin :-)). Es ist eine Schande, wenn man so eine Meinung über sich selbst bekommt :-)). Nur ein Scherz :-))

 
boysn >> :

Ich dachte, sie würden automatisch über die h-Dateien nach oben gezogen. Das erste Mal, jedoch mit nur svd.cpp Datei, ich kompiliert und slinked, es gab keine Fehler, bis ich extern hinzugefügt. Die Datei svd.cpp hat einen Link zu ihrer h-Datei und verweist auf andere h-Dateien, die wiederum cpp-Dateien mit demselben Namen verwenden. Das scheint genauso viel Sinn zu machen, wie ich dachte. Ich will mich nur ein bisschen rechtfertigen, damit du nicht auf die Idee kommst, dass ich total blöd bin :-)). Es ist schade, wenn man so eine Meinung bekommt :-)). Nur ein Scherz :-))

Um einen solchen Fehler zu vermeiden, müssen Sie dies wissen:

* Warum Dateien in .CPP / .H aufteilen?

* Der Unterschied zwischen einer Funktionsdeklaration und einer Deklaration

* Warum brauchen wir Inline-/Template-Schlüsselwörter?

* Was passiert, wenn Sie Funktionen innerhalb einer Klassendeklaration deklarieren?

* Zweck der Kompilierung und Verknüpfung

* Unterscheidung und Zweck von .OBJ / .LIB / .DLL / .EXE

* Statische und dynamische Verknüpfung

* Was ist Linker-Fehler = Unaufgelöste Funktion

* Was ist Linker-Fehler = Mehrfaches Symbol

* Wie der Linker eine Binärdatei erstellt

* Was ist extern?

.

Da haben Sie es also schon einmal.

 
jartmailru >> :
* Der Unterschied zwischen der Deklaration einer Funktion und einer Deklaration.

Nun, Erklärung und Deklaration sind dasselbe :).

Erklärung - Definition.

 

Ja... Ich merkte, dass ich mich geirrt hatte... Das ist OK, wir werden es lernen...

Über die empfangene dll... Leider hat es meine Erwartungen bisher nicht erfüllt :-), d.h. es hat auf Anhieb nicht geklappt. Im Prinzip wäre es sehr schön, sie sofort zu bekommen.

Leider geschehen keine Wunder... :-)

Ich habe versucht, eine quadratische 3x3-Matrix als Eingabe zu verwenden. Ich weiß, was die Ausgabe sein sollte, das weiß ich aus dem Beispiel. Leider hat die Ausgabe singuläre Werte von Nullen, und die Ausgangsmatrizen der Vektoren sind singulär.

Das heißt, es scheint etwas getan zu werden, aber ich weiß nicht, was es ist. Soweit ich es verstanden habe, ist es unmöglich, Ausgabeinformationen innerhalb der DLL zu schreiben... wie print("a["+i+"]", a[i]), denn es wird nicht gedruckt... Das ist es, was ich aus dem allerersten Beispiel in diesem Thread schließe...

Dort war es die Funktion printf("GetDoubleValue nimmt %.8lf\n",dpar);

In den Protokollen des Meta-Traders wurden keine Informationen ausgedruckt, sondern nur der zurückgegebene Funktionswert (Return) angezeigt

So wie ich es verstehe, kann ich es auf diese Weise nicht debuggen, richtig? Oder habe ich es wieder vermasselt?

Jetzt versuche ich, ein exe- statt ein dll-Projekt zu erstellen, weil Sie mir gesagt haben, dass es einfacher ist, eche-Projekte zu debuggen...

Obwohl die WinMain-Funktion dort erscheint und ich nicht herausfinden kann, wie ich mein Projekt korrekt an ein exe-Projekt andocken kann...

Und ich habe noch nicht verstanden, welche Funktionen der Ausgabe und welche Werkzeuge besser für mich zu debuggen ist... Ich lese gerade Archangelsky...

 
TheXpert >> :

Nun, die Erklärung und die Ankündigung sind ein und dasselbe :).

Erklärung - Definition.

Danke für den Fehler. Ich kenne es auf Englisch :-).

 
boysn >> :

Allerdings erscheint die WinMain-Funktion dort, und ich habe noch nicht herausgefunden, wie ich mein Projekt korrekt an das eche-Projekt andocken kann...

Und ich habe noch nicht herausgefunden, welche Ausgabefunktionen und Tools ich debuggen sollte... Ich lese gerade Arkhangelsky...

Und du, Genosse, schreibst einen Testcode mit deiner Matrix 3 auf 3 und Debug-Ausgabe - und alles wird klappen.

Das Wichtigste ist, dass Sie eine *Konsolenanwendung* für printf() benötigen.

 
Ja, ich werde es versuchen...