DLL einbinden

RealHAZZARD

Erfahrenes Mitglied
Hallo

Ich benutze den BCB5 und möchte Funktionen aus einer DLL verarbeiten.
Es handelt sich hierbei um die bszip.dll (wenn das jemandem hilft).
Aber beim exe erzeugen (Compelieren geht) gibts einen Fehler:

[LinkerFehler]Unresolved external 'zCreateNewZip(...)' referenced from C:\....\Unit1.obj

Das ist auch die einzige Funktion die da zZ drin steht.

Was ich bisher gemacht habe:

-bszip.h eingebunden
-die bszip.lib erzeugt
-über PROJEKT|DEM PROJEKT HINZUFÜGEN die bszip.lib eingebunden

Ich wollte das auch noch per ILink linken aber der meckert die bszip.dll an:

ERROR: C:\.....\bszip.dll contains invalid OMF record, type 0x4d

Tja. Und so weit bin ich jetzt...War das bisher richtig? Oder seht ihr hier schon nen
Fehler? Wenn möglich kann ja bitte nochmal einer posten wie ich ne dll einbinde
(StepbyStep).

Ich hoffe ihr wisst mir zu helfen. Ich verzweifel dem nächst wenn das so weiter geht.
Danke
 
Zuletzt bearbeitet:
moin


Eine DLL musst du per LoadLibary einbinden, dazu brauchst du Informationen über die Funktionen (Name, Typ, Parametertypen).
Das Thema gab es hier erst neulich, einfach mal die Suchfunktion benutzen.


mfg
umbrasaxum
 
Tag
Danke für die schnelle Antwort.

Das mit dem LoadLibary hab ich über die Suchfunktion schon gefunden.
Aber vollkommen klar war es mir dann doch nicht.

Eine DLL musst du per LoadLibary einbinden, dazu brauchst du Informationen über die Funktionen (Name, Typ, Parametertypen)

Kannst du mir das mal anhand einer Beispielfunktion (aus einer Beispielbib.) zeigen?
(Oder soll ich mal die Doku posten?)
-Also wie ich es definiere und dann auch beutze?

Und sind die Schritte die ich bisher gmacht habe richtig oder falsch oder unnötig?

Sorry wenn ich solche dümmlichen Fragen stelle, aber bin Anfänger (unglaublich wie oft
man das in den Beiträgen liest :-) )

Danke
 
moin


Ich denke du hast gesucht?! Dnan hättest du eigentlich folgendes Beispiel von mir finden müssen:
Code:
typedef long (_stdcall *f01)(long CardAddress);

f01 OpenDevice;

int main(void)
{

	HMODULE   hDll;

	hDll = LoadLibrary("K8055D.dll");
	if(hDll==NULL)
		return 1;


	OpenDevice = (f01)GetProcAddress(hDll,"OpenDevice");
	
        //Funktion benutzen
        OpenDevice(0);

	FreeLibrary(hDll);
	return 0;
}


mfg
umbrasaxum
 
Tag

Ich danke dir wieder einmal für die schnelle Antwort. :)

Ja das habe ich gesucht und auch gefunden.
Aber ich gehöre zu den Leuten die Text nicht einfach
abschreiben. Ich will es auf kleinste verstehen, um es später
selbst (ohne nochmal ein Forum zu bemühen) zu wissen
und anwenden zu können.

Könntest du deshalb den Quelltext etwas genauer komentieren?

Und das steht noch offen:

Und sind die Schritte die ich bisher gmacht habe richtig oder falsch oder unnötig?
 
moin


Aber ich gehöre zu den Leuten die Text nicht einfach
abschreiben. Ich will es auf kleinste verstehen, um es später
selbst (ohne nochmal ein Forum zu bemühen) zu wissen
und anwenden zu können.
Dann mach dioch doch jetzt selbst daran, die Dokumentation zu den einzelnen Funktionen in der MSDN (http://msdn.microsoft.com) nachzulesen. Oder such bei google nach Informationen.
Dann musst du auch nicht nochmal hier nachfragen.


mfg
umbrasaxum
 
na vielen Dank.
Das habe ich schon getan (google).
ich hätte ja nicht gefragt wenn ich etwas gefunden hätte.
Habe das ja nicht bös gemeint. Will halt nur dazu lernen und nicht nur abschreiben.
Aber sag doch einfach wenn du keine Lust hast
 
Danke.
Und ich habe dazu nichts gefunden. Weil ich wohl mit den falschen
Begriffen gesucht habe. Und das sind nun mal probleme die man als
Anfänger hat.
Glaube mir...Ich habe viel gesucht, aber ich hab da nie was gefunden,
womit ich was anfangen konnte. Und bitte sag mir nicht dass ich keine
Lust mehr hab...so viel Zeit und Nerven wie ich da rein gesteckt habe.
Mit dem Projekt könnte ich vielleicht meinen derzeitigen Praktikumschef
überzeugen mich als Azubi zu nehmen.
Ich glaub von keine Lust kann nicht die rede sein.

So. wie geschrieben...vielen dank
ich schau mir das jetzt mal näher an

Grüße
 
Zurück