Avatar billede jsc Nybegynder
16. februar 2011 - 16:07 Der er 4 kommentarer og
1 løsning

C# program til 32-/64-bit som importerer c++ dll

Hej Eksperter


Jeg har tidligere lavet et c# program i Windows Xp 32-bit, hvor jeg importerer nogle funktioner fra en dll lavet i c++.

Det ser således ud:
        [DllImport("AtUsbHid.dll")]
        public static extern bool findHidDevice(UInt32 VID, UInt32 PID);
        [DllImport("AtUsbHid.dll")]
        public static extern bool writeData(byte[] buf);
        [DllImport("AtUsbHid.dll")]
        public static extern bool readData(byte[] buf);
        [DllImport("AtUsbHid.dll")]
        public static extern bool closeDevice();

dem anvender jeg så på forskellig vis - f.eks således:
        public void CloseDevice()
        {
            closeDevice();
        }

Programmet kører rigtig fint under 32-bit Windows Xp/7, men når jeg kører programmet under 64-bit Windows 7, så vil det ikke. Nogle af jer, der kan hjælpe mig i sådan en situation?

Jeg udvikler programmet under 32-bit Windows Xp - har det noget at sige?

/jsc
Avatar billede arne_v Ekspert
17. februar 2011 - 03:06 #1
Der er to ting du kan prøve:

1) bygge din DLL som 64 bit DLL

2) ret din .NET build fra anycpu til x86
Avatar billede jsc Nybegynder
17. februar 2011 - 08:41 #2
fantastisk... det virker. Jeg satte build til x86, da jeg ikke har mulighed for at ændre dll'en.

men hvorfor virker det fremfor de andre settings?

smid et svar under alle omstændigheder... tak for hjælpen.

/jsc
Avatar billede arne_v Ekspert
17. februar 2011 - 14:52 #3
Jeg mener at logikken er:
- hvis du builder til anycpu saa koerer .NET runtime dit program som 64 bit hvis det er en 64 bit maskine og 32 bit hvis det er en 32 bit maskine (maskine=Windows)
- hvis du builder til x86 saa koerer .NET runtime dit program somn 32 bit uanset hvad
- 64 bit skal bruge 64 bit DLL'er
- 32 bit skal bruge 32 bit DLL'er
Avatar billede arne_v Ekspert
17. februar 2011 - 14:52 #4
og et svar
Avatar billede jsc Nybegynder
17. februar 2011 - 15:05 #5
tak for hjælpen
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