|
| Eksempel på hvordan man kalder en C-funkti~ Fra : Henrik |
Dato : 17-09-10 15:17 |
|
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 (24-10-2010)
| Kommentar Fra : Andreas Andersen |
Dato : 24-10-10 00:38 |
|
On 17 Sep., 16:17, "Henrik" <hen...@nospam.tak> wrote:
> 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?
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
| |
|
|