Avatar billede bumle90 Nybegynder
17. april 2004 - 00:42 Der er 4 kommentarer og
1 løsning

Nybegynder med DLL filer

Hej, jeg har følgende filer filer i et projekt som bliver compilet til en dll fil:

MyLib.h

#ifdef MYLIBAPI

#else


#define MYLIBAPI extern "C" __declspec(dllimport)

#endif

MYLIBAPI int Add(int nLeft,int nRight);

MyLibFile1.cpp:

#include<windows.h>
#define MYLIBAPI extern "C" __declspec(dllexport)
#include "MyLib.h"

int g_nResult;

int Add(int nLeft,int nRight)
{
g_nResult=nLeft+nRight;
return(g_nResult);
}

Og i et andet project en exefil der skal bruge dll-filen:

MyExeFile1.cpp:

#include<windows.h>

#include "E:\\rodeDir\\dlltest\\MyLib.h"

int main(int argv,char* argc[])
{
int nLeft=10;
int nRight=25;

TCHAR sz[100];
wsprintf(sz,TEXT("%d + %d = %d"),nLeft,nRight,Add(nLeft,nRight));
MessageBox(NULL,sz,TEXT("Calculation"),MB_OK);
wsprintf(sz,TEXT("The result from the ast Add is: %d"),g_nResult);
MessageBox(NULL,sz,TEXT("Last Result"),MB_OK);   
    return 0;
}

Jeg kan godt compile dll-filen, men jeg kan ikke compile filen der gør brug af dll-filen. Altså myExeFile1.cpp

Hvad gør jeg galt?
Avatar billede arne_v Ekspert
17. april 2004 - 09:42 #1
Hvilken fejl får du ?
Avatar billede bumle90 Nybegynder
20. april 2004 - 14:43 #2
Jeg får at vide at den ikke kan finde g_nResult.
Altså følgende fejl:

Compiling...
MyExeFile1.cpp
E:\rodeDir\brugdll\MyExeFile1.cpp(13) : error C2065: 'g_nResult' : undeclared identifier
Error executing cl.exe.
Creating browse info file...

brugdll.exe - 1 error(s), 0 warning(s)
Avatar billede bumle90 Nybegynder
20. april 2004 - 14:44 #3
Som om jeg ikke får fat i dll filen eller sådan noget.
Jeg kan godt downloade og skabe dll filen i det andet workspace.
Så jeg fatter det ikke helt. Er det den tigtige måde jeg linker på eller hvordan skal jeg ellers gøre...Jeg inkluderer jo bare den .h fil som jeg gør nu...Måske jeg skal gøre noget andet?
Avatar billede jakobroland Nybegynder
27. april 2004 - 16:55 #4
Så vidt jeg kan se, erklærer du ikke g_nResult i MyLib.h. Derfor kan cl ikke finde den når du kompilerer MyExeFile1.cpp (dvs. fejlen opstår før den linker, så på det tidspunkt er den slet ikke nået til at kigge i .dll-filen).

Prøv at tilføje noget i stil med

  extern int g_nResult;

i MyLib.h. Det kan være det hjælper.
Avatar billede bumle90 Nybegynder
24. august 2004 - 18:03 #5
Undskyld den bratte afslutning, men jeg har lidt for mange løse ender...Blir nødt til at lukke for nogle af alle mine spg.
Tak for hjællpen. Hvis der er lagt svar får disse point, eller er jeg nødt til at tage dem selv for at lukke alle de her spg.
Mvh.
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