Avatar billede videodyr Nybegynder
28. maj 2002 - 13:02 Der er 3 kommentarer og
2 løsninger

dll

Hejsa!!

Er der nogen der kan give mig et lille eksempel på hvordan man laver en dll-fil der returnere et navn til mit program?



Avatar billede chries Nybegynder
28. maj 2002 - 13:20 #1
Avatar billede laffe Nybegynder
28. maj 2002 - 15:25 #2
Brug CBuilder'ens DLL-wizard til at lave selze dll'en.
Vælg: File->New->DLL-Wizard

Forneden ses et eksempel på hvordan du laver en dynamisk link til en .DLL fra din application.


// xxx.h fil
typedef int __stdcall (TProc_DLLVersion)(char* Buf);
HINSTANCE hLib;


// xxx.cpp fil.
TProc_DLLVersion*        MXDBDLLVersion;


void InitDLL()
{
  hLib = LoadLibrary("DBDLL.DLL");
  if (!hLib)
  {
    // Unable to load DBDLL.DLL
    return ;
  }
  if ((MXDBDLLVersion = (TProc_DLLVersion*) GetProcAddress(hLib,"DLLVersion")) == NULL)
    // Function DLLVersion Not found in DBDLL.DLL
}
Avatar billede videodyr Nybegynder
29. maj 2002 - 07:42 #3
Jeg har lavet en lille test dll fil, men den kommer frem og siger at jeg ikke kan returnere en String.

Hvordan få jeg den til det??

Kode:
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
String name;

name = "test"; 

return name;
}
Avatar billede laffe Nybegynder
29. maj 2002 - 08:41 #4
En Dll virker på den måde, at at kan definere nogle funktioner/Procedurer, som du kan kalde fra en anden applicatin.

DllMain er Dll'ens "hovedprogram". Der er IKKE der du skal lægge din kode.

Forneden ses et eksempel på, hvordan jeg erklærer en funktion der returnerer en streng.

Sørg for at alle de funktioner/procedurer du har tænkt dig at lave, indeholder 'simple' parametre (i hvert fald til at starte med) såsom int, char, char*, void* osv.


1. Først laver du en forward erklæring af den funktion du vil exportere. Dette har jeg gjort ved at lave mig en macro (MX_DLLEXPORT).

#define MX_DLLEXPORT extern "C" __declspec(dllexport) __stdcall


MX_DLLEXPORT int DLLVersion(char* Ver);


2. Implementer funktionen.

MX_DLLEXPORT int DLLVersion(char *Ver)
{
  StrCopy(Ver,"05.12.01-0");
  return 1;
}

3. Re-Build din Dll.
Avatar billede videodyr Nybegynder
30. maj 2002 - 10:06 #5
okay... Jeg tror at jeg vendter med at gå ind i det med dll-filer til jeg er blivet lidt beder til C.

Men tak for hjælp...
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