Avatar billede mbsnet Nybegynder
16. september 2010 - 13:53 Der er 8 kommentarer og
1 løsning

Afvikle API rutine uden implementering

Hej eksperter.

Kender nogle til en mulighed for at afvikle API rutiner, uden at implementere rutinerne som kode, i Delphi ?

Er vant til at implementere som eksempelvis
procedure sleep(ms:dtINT);stdcall;

implementation

procedure sleep(ms:dtINT);external kernel32 name'Sleep';


...Men ville gerne kunne afvikle uden at skrive koden i Delphi, lige som der er muligt at hente ressourcer osv.

Mvh
Morten B.S.
Avatar billede arne_v Ekspert
27. september 2010 - 03:48 #1
Hvis du kalder en funktion FooBar og der på din PC er 31 DLL'er med en FooBar funktion - hilken af dem forventer du så at Delphi skal kalde?
Avatar billede mbsnet Nybegynder
27. september 2010 - 04:03 #2
Hej Arne,
Jeg ønsker at kalde en bestemte rutine fra en bestemte dll-filer (som normalt). Det jeg mener er, at kunne lave det "data-baseret" i stedet for "kode-baseret"...

Hvis man kunne kalde en procedure i windows til at afvikle rutinen, i stedet for at implementere det i delphi kode.

I forbindelse med ressourcer kan dette jo sagtens lade sig gøre, men ved stadig ikke helt om man kan afvikle rutiner på den måde
Avatar billede arne_v Ekspert
27. september 2010 - 04:07 #3
Er det LoadLibrary og GetProcAddress du leder efter?
Avatar billede arne_v Ekspert
27. september 2010 - 04:08 #4
Der kan du angive DLL navn og funktionsnavn som streng værdier.

Eksempler:

http://www.scalabium.com/faq/dct0130.htm
http://www.informit.com/articles/article.aspx?p=27837&seqNum=3
Avatar billede mbsnet Nybegynder
27. september 2010 - 04:16 #5
Det ser meget lovende ud, jeg ser på det, og vender tilbage
Avatar billede mbsnet Nybegynder
27. september 2010 - 05:39 #6
Det er helt sikkert dette som jeg ledte efter.

Jeg kan se der stadig kræves at implementere nogle passende datatyper... Ved du om jeg kan komme udenom det på en måde, eventuelt ved at fylde data i en pointer eller lign. ?
Avatar billede mbsnet Nybegynder
30. september 2010 - 06:30 #7
arne: der er points hvis du svarer...
Avatar billede arne_v Ekspert
30. september 2010 - 15:13 #8
Det er nok svaret at slippe uden om data typer. Som det mindste skal du have nogle typer der saetter op de rigtige bytes.

Og et svar.
Avatar billede mbsnet Nybegynder
30. september 2010 - 23:17 #9
Ok må prøve at rode lidt med det, nu fandt jeg i det mindste frem til GetProcAddress så siger mange tak :-)

mvh
Morten
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

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