Avatar billede renecarlsen Nybegynder
22. februar 2010 - 09:52 Der er 2 kommentarer

Kald af win32 api dll

Jeg skal kalde en dll, hvor jeg kan se at navnet på funktionen er _smc_io_SetDigOutStatus@8

Hvordan gør jeg det fra c#

Jeg har prøvet at definerer følgende:

[System.Runtime.InteropServices.DllImport("smc_io.dll")]
static extern long _smc_io_SetDigOutStatus(long smcDigOut, long Level);

eller

[System.Runtime.InteropServices.DllImport("smc_io.dll")]
static extern long smc_io_SetDigOutStatus(long smcDigOut, long Level);

Men i begge til fælde får jeg fejlen "unable to find entry point in DLL" når jeg prøver at kalde funktionen.

Jeg tror jeg skal bruge hele navnet nemlig "_smc_io_SetDigOutStatus@8" men hvordan gør jeg det?
Avatar billede arne_v Ekspert
22. februar 2010 - 15:15 #1
Du skal ikke bruge _ og du skal ikke bruge @8.

Hvordan har du udledt argument listen ??

Umiddelbart vil jeg da gaette paa at de to argumenter skal vaere int og ikke long.

Husk at en C/C++ long er en C# int !
Avatar billede arne_v Ekspert
26. april 2010 - 03:53 #2
Kommet videre ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester