Avatar billede lanstorp Nybegynder
07. oktober 2002 - 08:51 Der er 9 kommentarer og
2 løsninger

Find dll'er fra exe

Min exe bruger nogle dll fra et andet program (igennem en slags SDK). Er der ikke en måde, jeg kan undgå at skulle placere min exe i samme mappe som dll'erne.
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 10:20 #1
?
DllInstance := LoadLibrary(PChar('Mindll.dll'));
If DllInstance <> 0 then
begin
  blabla
end;
FreeLibrary(DllInstance);
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 11:03 #2
Nope, det er til at til gå resource dll.
Avatar billede soreno Praktikant
07. oktober 2002 - 11:28 #3
du kan kopiere dll filerne ind i windows' systembibliotek, kig evt lidt nærmere på:
GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 11:34 #4
Nu er det en del dll'er, så folk bliver nok mugne hvis jeg begynder at lave et installationsprogram, der jonglerer dll'er rundt på deres harddisk. Det idelle ville være, hvis man i deklarationen af dll'erne i exe'en kunne angiv en variabel med stien til dll'erne. Jeg kender nemlig dll'ernes placering i runtime.
Avatar billede soreno Praktikant
07. oktober 2002 - 11:40 #5
hvordan er din mappestruktur ?
eks.
/program.exe
/program/dll'er/1.dll
/program/dll'er/2.dll
/program/billeder/1.bmp
..
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 11:48 #6
c:/en sti/program.exe
c:/en helt anden sti/alle dll'er

hvis der ikke er andre udvej er det også ok med
c:/en helt anden sti/alle dll'er/program.exe, altså exe placeret i et underkatalog til alle dll'erne.
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 11:53 #7
al la deklarationen: function OpenMET(hMet: Integer): Integer; stdcall; external '../Migrid.dll';
Men har ikke lige en compiler til at tjekke om man kan ændre på external parameteren med indsættelse af ../
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 12:10 #8
det virker med external '../Mimdll.dll' så jeg tror jeg smidder mit prog i et sub katalog til alle dll'erne. Andre løsninger ?
Avatar billede dkn Nybegynder
07. oktober 2002 - 14:12 #9
loader du dine dll'er dynamisk eller statisk?

Jeg kan ikke huske om man kan dette, men du kunne jo lave en varabel som hed:
DLLRoot : string;
sætte den til:
DLLRoot = 'c:/en helt anden sti/alle dll''er'

I din kald ville det se sådan ud (ca)
Test = procedure; external Dllroot+'DllNavn.dll'; stdcall;

Håber du kan se hvad jeg mener.
Avatar billede lanstorp Nybegynder
07. oktober 2002 - 14:19 #10
dkn> tjekker det i aften. Men er næsten sikker på den tager det, når den også tager external '../mindll.dll'
Takker begge.
Avatar billede dkn Nybegynder
07. oktober 2002 - 14:28 #11
Ja måske men jeg er bare ikke sikker på at man må have en variable i en const function...
Men så må du loade den på den anden måde.
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