Api verwenden

#2839896
Lesenswert?

Guten Morgen,

ich weiß nicht ob man das so über einen Kamm scheren kann aber ich 
beschreibe einfach mal mein Problem:

Ich habe in meinem Praktikum das MPU9150 SDK von Invensense zu Verfügung 
bekommen, da ist eine API dabei.

Soweit so gut.

Also nehme ich mir einfach meine .h´s die dabei sind include sie. Wenn 
ich jetzt die Funktionen daraus aufrufen will bekomme ich leider immer 
einen link error...

mach ich da irgendwas programmiertechnisch falsch oder bräuchtet ihr für 
Hilfestellung genauere Informationen.

Viele Grüße
Gast #2839915
Lesenswert?

Das sind doch absolute Basics.
Eine API besteht aus Code, aber nicht aus Source code sondern in 
compilierter Form. Also in Form von Objekten und/oder Bibliotheken.
Und wenn dein Programm die benutzen soll musst du die dazulinken.

Besorg dir einen Kerninghan Ritchie und lese die Basics, die sind auch 
noch in Zeiten von Clicki Bunti Zusammenschubs statt Programmieren 
nützlich.
Gast #2840052
Lesenswert?

Hab mir das zip nicht angeschaut. Die Vorbeter haben dir ja schon zu 
erklären versucht, dass das Header file nur Text ist, und du für ein 
lauffähiges Programm auch den object code benötigst. Den musst du 
entweder aus den sourcen selbst bauen oder vom Lieferanten besorgen. Zu 
guter letzt musst du dem Linker dann noch mitteilen, wo er das object 
dile findet.

Das sind wirklich Grundlagen: Wie baut ein c compiler Programme? Welche 
Aufgaben übernehmen Präprozessor und Linker? Was sind C Stamdard 
Libraries? Wie baue oder verwende ich eigene Libs?
Gast #2840094
Lesenswert?

Jan L. schrieb:
> Ok werd ich mal schaun, mein problem is einfach das ich in C einfach
> nicht der crack bin xD aber das scheint meinem Chef nicht zu
> intressieren xD

Dann Laufen hier dein paar dinge falsch üder die ich allerdings nur 
mutmaßen kann.

1. Es wird mal wieder ein E-techniker der "0" Ahnung von programmieren 
hat, für zwecke missbraucht für die man eigentlich einen Inforamtiker 
benötigt.

2. Du hättest doch dir mehr Mühe in Programmieren geben sollen und nicht 
immmer die vorgefertigten Startprojekte aus 
Mikrocontroller-programmierung benutzen sollen um deine Praktika 
abzulegen.

3. Wenns deinen chef nicht interessiert und 1 & 2 zutrifft, bist du 
selber schuld und du solltest das beste drauß machen ohne ein schlechtes 
zeugnis zu bekommen. wenn 1 & 2 nicht zutrifft und du nur die IDE nicht 
verstehst sollte man doch am besten zum Chef gehen und diesen Punkt 
ansprechen, denn das hat wenig mit C zu tun.

GL HF
Gast #2840147
Lesenswert?

Hallo Jan

Das einbinden einer API erfolgt in folgenden Schritten:

1. aus der *.DLL eine *.lib erstellen falls die nicht mitgelifert wird
   z.B. mit importlib (Builder)
2. einbinden der *.h und *.lib in das Projekt (statisches Linken)
   man kann auch dynamisch, ich persönlich ziehe statisch vor.
3. Definition der Prototypen im Projekt falls diese nicht in der *.h 
sind
   z.B. extern "C" int dllfunc(char *buffer);
   hier muss die Aufrufkonvention berücksichtigt werden, d.h wie die
   Parameter auf den Stack gelegt werden und wie bereinigt.
   z.B. WINAPI Pascal oder "C"
4. Project linken und dann passt das.
5. Die *.dll muss natürlich noch ins Installationsprogramm eingebaut 
werden.
   sonnst gibts ne Fehlermeldung beim Programmaufruf.

Gruß Frank

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren