Hallo Leute, eine Frage: Ich mache gerade ein Projekt mit anderen Entwicklern einer anderen Firma. Jetzt soll mein Modul als Objektcode übergeben werden um es einzubinden (kein C Code). Mein Modul soll Variablen anderer Module verarbeiten, sodass ich mir nun die Frage stelle, ob man: a) die Headerdateien der anderen Module, in denen die Variablen vorkommen bei mir einbindet (diese müssen dann natürlich extern deklariert sein), oder b) ich die Variablen in meiner Headerdatei als extern deklariere und sie damit einfach annehme ? Was ist besser ? Was würdet ihr tun ? Wo können Probleme auftreten (ausser dass alles eindeutig definiert sein muss) ? Vielen Dank und Grüße
Variante a. Variante b ist Pfusch. Wer ein Interface zur Verfügung stellt (und dazu gehört hier auch die globale Variable), ist nicht nur für die Definition, sondern auch für die Deklaration verantwortlich.
Man definiert ein Interface, ein API, und liefert den C-Programmierer dafür eiene C-Headerdatei in der deine Funktionen mit ihren übergebenen Datentypen deklariert sind. In welcher Form das API ist, ob native C-Funktionen mit übergebenen C-Strukturen, ob C++-Klassen, ob COM Objekte, stimmt man mit den Leuten ab. Werte werden also übergeben, bei vielen Werten wird ein Verweis auf die Struktur übergeben oder eine Struktur zum einfüllen zur Verfügung gestellt. Bei OBJ muss man auch darauf achten, welche LIBraries die ihrreseits wieder sehen wollen, es ärgert, wenn das eine eingebundene OBJekt plötzlich massenhaft LIBraries benötigt, die das Hauptprogramm gar nicht braucht, womöglich noch eine eigene Speicherverwaltung, GUI-API oder managed code.
Dies ist eine Frage der Veranatwortlichkeiten. Stell dir selbst die Frage (bei beiden Varianten) wer Vereantwortlich ist, und wer dann die Änderungen machen muss, wenn es nicht funktioniert. ciao
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.