Avatar billede kjeldsted Novice
22. marts 2009 - 12:39 Der er 7 kommentarer og
1 løsning

Inkludér .dll?

Hej alle eksperter.

Jeg har efter en længere periode med PHP programmering begyndt at læse lidt på noget C++ programmering, som konsolvindue.
Jeg står nu i den situation at jeg skal lave en eksamensopgave hvor jeg er nødt til at benytte en computerstyrring, som jeg vil programmere i C++. Til denne computerstyrring er der en tilhørende DLL fil som skulle indeholde en række funktioner (i følge manualen til kortet). Der følger et eksempel program med til dette kort. Jeg ville dog helst selv bygge hele programmet i stedet for at ændre noget eksisterende.

Jeg ved dog ikke hvordan jeg får kaldt funktionerne fra denne DLL fil, så jeg kan benytte funktionerne tilknyttet kortet.

Jeg kan lige indskyde at jeg programmere i Microsoft Visual C++ 2008 Express.

Håber jeg kan få lidt hjælp til dette, og på forhånd tak.

// Jens Kjeldsted
Avatar billede bertelbrander Novice
22. marts 2009 - 14:29 #1
Der står lidt om dll filer her:
http://damb.dk/dllfiles.php

Hvis det er en 3. parts dll, følger der ofte en .h og en .lib fil med, så skal du bare inkludere .h filen og linke til .lib filen.
Avatar billede kjeldsted Novice
22. marts 2009 - 17:31 #2
Hvordan er det jeg helt præcist skal linke til .lib filen?
Avatar billede bertelbrander Novice
22. marts 2009 - 17:37 #3
Så vidt jeg husker skal du gøre det inder under project settings -> linker. Der er vist et felt til "libraries".
Jeg har ikke en fungerende VisualC++ for tiden.
Avatar billede kjeldsted Novice
22. marts 2009 - 17:50 #4
Hm. Jeg kan sige "Add existing item". Og hvis jeg gør det, vælger .lib filen, samt includere .h filen og prøver at compile får jeg en dejlig "lille" række fejl:

c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(23) : error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe
c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(24) : error C2143: syntax error : missing ';' before '__stdcall'
c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(24) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(24) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(25) : error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe
c:\documents and settings\jens k\my documents\visual studio 2008\projects\teknikeksamen ny ny\teknikeksamen ny ny\K8055D_C.h(26) : error C2143: syntax error : missing ';' before '__stdcall'

Et lille udpluk af en meget lang liste.
Avatar billede kjeldsted Novice
22. marts 2009 - 17:54 #5
Og .h filen som den laver fejl ved (ved den virker da jeg kan compile test-programmet):

#ifdef __cplusplus
extern "C" {
#endif



#define FUNCTION __declspec(dllexport)

FUNCTION long __stdcall OpenDevice(long CardAddress);
VOID __stdcall CloseDevice();
FUNCTION long __stdcall ReadAnalogChannel(long Channel);
VOID __stdcall ReadAllAnalog(long *Data1, long *Data2);
VOID __stdcall OutputAnalogChannel(long Channel, long Data);
VOID __stdcall OutputAllAnalog(long Data1, long Data2);
.......
Avatar billede bertelbrander Novice
22. marts 2009 - 18:06 #6
Nu bevæger vi os væk fra det jeg ved noget om :-(

Det lyder til at du ikke compilerer i "rigtig" C++ mode, men som "Managed C++", som måske har noget med .net at gøre...
Så vidt jeg ved skal kan du ikke (umiddelbart) bruge rigtig C++ kode (som jeg forventer at DLL'en er skrevet i) fra managed C++ kode...

Måske kommer der en forbi, f.eks. arne_v, der kan fortælle dig hvordan du sætter VisualC++ rigtigt op, dvs. sætter den til at compile i det rigtige mode.
Avatar billede kjeldsted Novice
22. marts 2009 - 18:16 #7
Hm, okay.

Men tak for hjælpen så langt da. Håber der kommer en anden forbi, som kan hjælpe.
Avatar billede kjeldsted Novice
26. april 2009 - 12:39 #8
Lukker
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
Kurser inden for grundlæggende programmering

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