Avatar billede yates Nybegynder
23. januar 2005 - 12:48 Der er 14 kommentarer og
1 løsning

MSVC++ command line og DLL

Hej - jeg har msvc++ compileren -den gratis version- som kører via command line (WinXP). Jeg skriver jævnligt DLLs vha andre compilere (LCC, DevC++, Pelles) og det går OK, men med MSVC++ kan jeg ikke compilere selvom jeg bruger de rigtige compiler switches etc. Compileren vil fx ikke gå med til det klassiske

BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  dwReason,
                      LPVOID lpReserved
                    )
{
    return TRUE;
}

Hvad gør jeg galt - husk dette er command line. Hvilken header bør inkluderes med denne compiler ("windows.h" er ikke i include- directoryen)?
Avatar billede soreno Praktikant
23. januar 2005 - 12:58 #1
Jeg har følgende settings til command line versionen:
set LIB=c:\util\vc++\lib
set INCLUDE=c:\util\vc++\include
set PATH=c:\util\vc++\bin;c:\util\vc++\lib;%PATH%

Men jeg har ikke prøvet at kompilere en DLL med vc++
Avatar billede yates Nybegynder
23. januar 2005 - 13:29 #2
Nej - det synes ikke at være mine settings. Det er vist mere fundamentalt; compile giver 8 syntax errors etc etc, fx på APIENTRY.
Avatar billede soreno Praktikant
23. januar 2005 - 13:33 #3
Mon ikke det er fordi det er en makro eller lign. som er defineret via windows.h

Har du prøvet at undersøge hvad INCLUDE variablen indeholder (hvis den da er sat) ?
Avatar billede arne_v Ekspert
23. januar 2005 - 13:43 #4
windows.h skal være der og skal includes !
Avatar billede yates Nybegynder
23. januar 2005 - 15:03 #5
Sjovt, har lige re-installeret MSVC++: det er ret entydigt - pakken indeholder IKKE windows.h !!
Avatar billede nlf Nybegynder
23. januar 2005 - 15:13 #6
Vil bare lige fortælle at APIENTRY kan erstattes med __stdcall, HANDLE = HGLOBAL, som jo sikkert er Windows-relateret, men den er åbenbart ikke defineret før HANDLE i de synlige headers, DWORD kan erstattes med unsigned long (det burde man jo kunne regne ud uden windef.h), og LPVOID lpReserved kan erstattes med void *lpReserved (har ikke prøvet det sidste, men er ret sikker på at det står for long pointer void).
Avatar billede arne_v Ekspert
23. januar 2005 - 15:13 #7
Interessant.

Jeg kan godt bruge windows.h i MS VC++ 7.1, men lidt investigatiion afslører
at den ikke findes i:
  C:\Program Files\Microsoft Visual C++ Toolkit 2003\include
men i:
  C:\Program Files\Microsoft SDK\Include

Og det kan godt være at det dir ikke kommer med Toolkit 2003 med med Platform SDK.

Men hvis det er tilfældet så skal du vel bare hente og installere Platform SDK !
Avatar billede nlf Nybegynder
23. januar 2005 - 15:16 #8
windows.h følger IKKE med i den gratis version af MSVC++.
Du kan nok godt, uden for meget bøvl, bruge dem fra Dev-C++'s (som jo er gratis) include mappe.
Dertil skal det så siges at du jo evt. også bare kunne downloade MinGW, hvis du ikke allerede har Dev-C++ og ikke vil downloade for meget.
Avatar billede yates Nybegynder
23. januar 2005 - 15:24 #9
nlf, jeg tyvstartede lidt på den ide der, og brugte windows.h include mappen fra DevC++ men det kan stadig ikke compilere. Tror bare jeg opgiver det hele. Hvordsan giver jeg point ud?
Avatar billede arne_v Ekspert
23. januar 2005 - 15:25 #10
Det bør virke med Platform SDK.
Avatar billede yates Nybegynder
23. januar 2005 - 15:28 #12
404 på alle fire links?!
Avatar billede nlf Nybegynder
23. januar 2005 - 15:28 #13
Jeg bliver i hvert fald lige nødt til at lægge et svar, hvis du har tænkt dig at give mig point ;-)

Ved ikke lige med resten, for har endnu ikke oprettet en post selv.
Avatar billede arne_v Ekspert
23. januar 2005 - 15:30 #14
De store IT guder er vist ikke rigtigt med dig idag ...
Avatar billede yates Nybegynder
23. januar 2005 - 15:33 #15
Suuuuuk, du har sikkert ret, Arne V. Næste gang lover jeg at stille mere fornuftige spm så som 'hvordan programmerer jeg et nyt operativsystem i Visual Basic?' eller lignende trivialiteter.
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