Discussion:
Eksempel på hvordan man kalder en C-funktion fra et C#.Net projekt?
(for gammel til at besvare)
Henrik
for 15 år siden
Permalink
Hej,

Er der nogen der kan give mig et eksempel på hvordan man kalder en
C-funktion fra et C#.Net projekt?

Jeg har eksempelvis to filer:

minckode.c
minckode.h

Jeg opretter en solution i Visual Studio med to projekter.

Det ene projekt er et C projekt som indeholder de to ovenstående filer. I
filen minckode.c er funktionen addtwo defineret:

int addtwo(int x, int y)
{
return (x + y)
}

Det andet projekt er et C#.Net projekt som skal kalde funktionen addtwo(int
x, int y)


Hvordan gør man det?

Jeg har googlet i timevis for at finde et eksempel, men har ikke kunnet
finde noget brugbart.

Jeg er også i tvivl om hvordan project settings skal se ud for de to
projekter (skal man bare bruge default indstillingerne?).
Andreas Andersen
for 14 år siden
Permalink
Post by Henrik
Hej,
Er der nogen der kan give mig et eksempel på hvordan man kalder en
C-funktion fra et C#.Net projekt?
minckode.c
minckode.h
Jeg opretter en solution i Visual Studio med to projekter.
Det ene projekt er et C projekt som indeholder de to ovenstående filer. I
int addtwo(int x, int y)
{
    return (x + y)
}
Det andet projekt er et C#.Net projekt som skal kalde funktionen addtwo(int
x, int y)
Hvordan gør man det?
Du skal eksportere funktionen fra dit C-projekt, og bruge P/Invoke i
dit C#-projekt. Følgende virker på min maskine:

extern "C" __declspec(dllexport) int __stdcall addtwo(int x, int y) {
return x + y;
}
---
[DllImport("MyDll.dll", CharSet=CharSet.Auto)]
static extern int addtwo(int x, int y);


--
Andreas

Loading...