Avatar billede tknudsen Nybegynder
02. februar 2001 - 12:51 Der er 9 kommentarer og
1 løsning

registrering af dll

Jeg er ved at lave en dll indeholdene nogle funktioner til at læse/skrive i binære filer. Funktionerne skal jeg bruge til noget ASP (ASP understøøter som default ikke håndtering af andet end tekst filer) så derfor skal de registreres på webserveren (win2000).

Det er første gang jeg arbejder med dll\'er
så jeg har lavet en simpel test:

library BinReadFile;

function ReadByte(byteno : integer) : byte; stdcall;
begin
  result := $10;
end;

exports
  ReadByte;

end.


- men når jeg prøver at registrere den på serveren (via regsrv32) får jeg følgende fejl:

\"binreadfile.dll was loaded, but the DllRegisterServer entry point was not found.\"

skal jeg på nogen måde fortælle hvordan og hvad der skal registreres i dll\'en ?
Avatar billede pellelil Nybegynder
02. februar 2001 - 12:57 #1
Jeg aner ikke altverden om ASP/Web-server plugings, men ud fra et COM synspunkt så skal din DLL indeholde et \"DllRegisterServer entry point\". Hvordan har du lavet din DLL? Hvis du har lavet den som en \"almindelig\" DLL så tror jeg ikke du får det til at virke. I Delpyi (5 Enterprise) har du et punkt til dette formuål under: File->New->ActiveX->Active Server Object (alt andet lige må den sørge for at du får alt med ?)
Avatar billede pstric Nybegynder
02. februar 2001 - 12:59 #2
Du skal starte dit projekt som et ActiveX Library (File|New...|ActiveX|ActiveX Library).

Så kan du tilføje dine ASP Objekter med File|New...|ActiveX|Active Server Object.

DelphiZine har en artikel om ASP objekter http://www.delphizine.com/features/2000/07/di200007cj_f/di200007cj_f.asp
Avatar billede delphi Nybegynder
02. februar 2001 - 13:28 #3
Du skal ikke registrere en almindelig DLL - fx. vil et C++ program der benytter en alm. procedure i en Delphi DLL være totalt ligeglad med om DLL\'en er registreret eller ej.  Registrering af DLL\'er er noget man gør, hvis den pågældende DLL er en COM server. 
Som du selv er inde på, så bruger man regsrv32 til at foretage registreringen.  Du kan dog også prøve at tage et kig i programmet TRegSvr.exe der følger med Delphi.  Source koden til det program finder du på din harddisk i biblioteket Delphi5\\Demos\\Activex\\Tregsvr. 
Programmet kan give dig et hip om hvad det er der sker.

Peter
Avatar billede pstric Nybegynder
02. februar 2001 - 13:31 #4
delphi>> Du har umiddelbart ret, men da han skal bruge det i en webside, bliver han nødt til at registrere dll\'en for at IIS kan finde den.
Avatar billede delphi Nybegynder
02. februar 2001 - 13:35 #5
Det er så fordi den bliver brugt som ActiveX/Com server. 

I øvrigt for at svare på spørsgmålet om hvad der skal til for at en DLL kan registreres:  DLL\'en skal indeholde følgende eksports:

exports
  DLLGetClassObject;
  DLLCanUnloadNow;    // Jeg er lidt i tvivl om den her.
  DLLRegisterServer;
  DLLUnRegisterServer; // se\'følig ikke til registrering, meeeennn...

Peter
Avatar billede delphi Nybegynder
02. februar 2001 - 13:36 #6
Delphi giver en Default implementation af disse exports i ComServ uniten....
Avatar billede pellelil Nybegynder
02. februar 2001 - 13:39 #7
delphi> Jeg vil umiddelbart tro at pstric\'s forslag er den \"nemme løsning\", og skulle man være sikker på at få alt med !?
Avatar billede delphi Nybegynder
02. februar 2001 - 13:42 #8
Se\'følig.  Jeg ville aldrig lave det fodarbejde selv, når nu Borland har gjort det for os.  Det var mere fordi tknudsen og spørger om hvad der skal registreres.  Iøvrigt kan jeg trykt henvise til:

\"Delphi COM programming\" af Eric Harmon (ISBN: 1-57870-221-6). 
Den hoved fokus på Delphi 5, men går dog tilbage til Delphi-COM starten i Delphi 3 hvis der er forskelle i implementationen.
\"Delphi COM programming\" er små 500 sider koncentreret COM stof.

Calvert og Cantú skriver også noget om COM og Automation i deres bøger, henholdsvis \"Delphi Unleashed\" serien \"Mastering Delhi\".  De viser dog kun lidt af emnet, idet de som praktisk eksempeler arbejder lidt med automation af Word/Excel.  En anden ting er at deres bøger dækker hele Delphi og dermed er der ikke meget plads til COM. 

Peter
Avatar billede pellelil Nybegynder
02. februar 2001 - 13:44 #9
Med hensyn til \"Delphi COM programming\" så vil jeg lige sige at det ikke er den værste bog på markedet (kender ikke de 2 andre).
Avatar billede tknudsen Nybegynder
02. februar 2001 - 14:02 #10
tak - nu funger det :-)
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