hotti: c headerdatei in C#

Beitrag lesen

Guten Abend,

eine Frage ist es möglich eine c-headerdatei die selbst erstellt wurde in C# einzubinden?

Wenn ja was muss man beachten?

es gibt verschiedene Handhabungen von headern. I.d.R. ist es so:

1. in der header-Datei (x.h) sind nur die Funktionen und Variablen deklariert, nicht jedoch die Quellcodes der Funktionen selbst,

2. die Library ist vorkompiliert und liegt als x.o vor (ObjectsFile).

3. die x.o wurde aus einer x.c erzeugt

Wichtig ists, mit den Präprozessor-Anweisungen zu prüfen, ob ein header bereits geladen ist oder nicht, Beispiel der x.h:

/**************************************************************************

Library fuer Kalenderberechnungen
 Library for Calendar Calculations

Mit dieser Library kann jeder Tag von
  1.1.4713 vor Christus
   bis
  heute Anno Domini
 eindeutig bestimmt werden

Es gilt fuer Berechnungen mit dieser Library:
  1.1.-4713 bis 4.10.1582 Julianischer Kalender
  ab 15.10.1582       Gregorianischer Kalender

Dateinamen:
  julianlibc.o <= Library
  julianlibc.h <= Header, this File

Autor: Rolf Rost, 23.3.2008, ueberarbeitet 14.5.2008

Object-Datei wie folgt linken
  gcc a.c -o a.exe julianlibc.o

**************************************************************************/

#ifndef __julianlibc_h__
#define __julianlibc_h__

/*********** Struktur für einen eindeutig bestimmten Tag *****************/

struct tagx {
 int julianday;        /* Julianischer Tag  */
 int day;              /* Tag zum Datum     */
 int month;            /* Monat zum Datum   */
 int year;             /* Jahr zum Datum    */
};

/************** Funktionen ***********************************************/

void tagx_julianday(struct tagx *, int jd);
void tagx_dmy(struct tagx *, int day, int month, int year);
int julianday(int day, int month, int year);

// weitere Funktionen...

#endif

Dateien:
julianlib.c // Quellcode der Lib mit Funktions-Definitionen
julianlib.h // Header mit Funktions-Deklarationen
julianlib.o // Vorkompilierter Quellcode der Lib

Und ja, was nirgendwo steht: Manche Compiler streiken, wenn in der Lib-Datei im Dateinamen ein Bindestrich ist.

Viele Grüße,
Hotte