/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409070
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste