Brett vorm Kopf

CodeFatal

Erfahrenes Mitglied
Hallo Leut's,

ich hab da mal nen total Aussetzer verbunden mit nem riesigen Brett vorm Kopf gepaart mit totaler Unwissenheit :confused:

Folgendes: Ich hab eine x.lib und eine x.h gegeben und eine x.dll gegeben.
Problem die x.dll passt nicht zu meinem Zielsystem, da diese Geräte spezifisch ist.
Also hab ich mir gedacht erzeugste die Dll neu.
Dazu brauch ich aber ne ausführbare Datei. Hat jemand ne Idee welche das sein könnte?
Was muss ich überhaupt beachten, wenn ich ne dll erstellen will.
Wenn ich das richtig verstanden habe mit den dll's dann können die dll's doch in ner ganz anderen sprache und Compiler erstellt werden als, nachher das Prog, welches auf die dll zugreift.

Kann mir bitte einer das Brett vom Kopf entfernen?

Danke und Gruss
Michael
 
Dazu brauch ich aber ne ausführbare Datei
Wieso brauchst Du zum Erstellen der DLL eine ausführbare Datei? AFAIK brauchst Du da nur den Quellcode samt Makefile oder Projekt (je nach Entwicklungsumgebung/Compiler).
Wenn ich das richtig verstanden habe mit den dll's dann können die dll's doch in ner ganz anderen sprache und Compiler erstellt werden als, nachher das Prog, welches auf die dll zugreift.
Prinzipiell ja. Man kann z.B. in VisualBasic eine DLL erzeugen und in Visual C++ verwenden.
 
Hi,
die "ausführbare" also zu kompilierende Datei wäre eine cpp oder c datei. Die Header datei (h) hast du ja bereits. Dlls kann man nicht immer ohne weiteres aus jeder Sprache nutzen. Zwischen VB und C zB ist die Benutzung von dlls nicht ohne zusätzliche Vorbereitungen möglich. Was man da nun genau beachten muss kann ich leider auch nicht sagen, habe mich damit nur mal flüchtig beschäftigt.

Gruß
 
Das mit der cpp ist sonne sache, der fragt nämlich ausdrücklich nach ner exe, die die dll nutzt. Nur wo soll ich die her kriegen? kann ich aus der lib und h nicht einfach die dll generieren?

Nutze embedded Visual Studio 4.0 (c++).
Zielsystem ist Win CE auf ner nicht standard Hardware. "Normale" exe Projekte kann ich durchaus nutzen und erstellen. Ziel der ganzen Aktion ist es simple Jpg. Dateien zu laden. Gibt da nen paar lib's, zwar wenig aber es gibt sie, die für diverse Standard Systeme in ne Dll gepackt sind. Nur ich mach ja mal wieder ne Extrawurst und muss das selbst noch mal machen.

Gruss Michael
 
Die EXE bräuchtest du doch nur zum Debuggen, nicht direkt zum Erzeugen der DLL. Wenn Diene IDE unbedingt sowas will, mußt Du Die eine kleine Testapplikation schreiben, die die DLL verwendet.

Was man beim Verwenden einer DLL aus einer anderen Sprache beachten muß, ist die Reihenfolge der Übergabeparameter auf dem Stack und wer den Stack wieder aufräumt. Das kann man (bei VC++) mit den Schlüsselwörtern __cdecl, __stdcall und __fastcall erreichen. Allerdings weiß ich auch nicht genau, wie das bei VB ist. Um eine DLL in C/C++ nutzen zu können, brauchst Du sowieso die entsprechende Headerdatei. Darin sollte dann das entsprechende Schlüsselwort verwendet werden (in den Funktionsdeklarationen der exportierten Funktionen).
 
Inzwischen ab ich die dll erzeugen können. bringt mich aber leider nicht weiter.
ich hab mir ein Testprogramm geschrieben, welches sich solange starten lässt, bis ich eine Funktion der Dll rufe. dann bekomme ich den fehler code 193, was auf ein falsches Format schliessen lässt, dies sollte aber richtig sein....
vorhanden ist also die exe mit zugriff auf die dll, die .h und .lib von der dll und die dll selbst.
Letzten Drei sind auch dem Projekt der exe hinzugefügt.
Die Dll ist auf dem Zielsystem vorhanden (Parallel zur Exe und im Windows Verzeichnis - sollte also auf jeden Fall gefunden werden).

Ich raff einfach nicht was da falsch läuft.
 
Das ist ein bisschen schwierig, da weiterzuhelfen, ohne den Code und vor Allem ohne die IDE und das Target.
Und Du hast auch die richtige DLL auf das Target kopiert? (Nicht böse sein, ich halte Dich nicht für blöd. Solche Fehler passieren halt manchmal)
Fehler 193 sagt, es wäre keine Windows-Applikation. Vielleicht hast Du ja ein falsches Ausgabeformat für die DLL eingestellt? Sonst fällt mir im Moment auch nicht mehr ein.
 
Ist eigentlich alles so eingestellt, wie bei der exe version. hab hier schon alles neu gemacht um wirklich sicher zu gehen, das die Version richtig ist...

Ich brauch "nur" ne möglichkeit nen JPG auf Ce darzustellen.

Gibt zwar nen paar freie Librarys aber leider nix was funktionieren will.:-(

Blöder weise kann ich auch nicht die Api funktionen von WinXP etc nutzen, da es die entweder gar nicht gibt oder genau die JPG unterstützung versagen.

Gruss Michael
 
Schön wenn man seine eigenen Posts wieder findet...
Hab dabei mal festgestellt, das ich den Thread nicht geschlossen hab ... Asche über mein Haupt...

Wie kieg ich den denn jetzt geschlossen mit dem neuen, wenn auch vorübergehenden, Design komm ich noch nicht klar:-(

Also der Thread ist geschlossen!

Gruss Michael
 
Zurück