Avatar billede steenk Nybegynder
14. november 2002 - 14:04 Der er 3 kommentarer og
1 løsning

dll fil registrering - fejl ?

jeg har en dll fil compileret via Visual C++ og ønsker at lade den registrer, bruger regsvr32 ”h:\Java native\WinApiJava.dll”

og får følgende besked:

h:\Java native\WinApiJava.dll was loaded, but the DllRegisterServer entry point was not found. DllRegisterServer may not be exported, or a corrupt version of h:\Java native\WinApiJava.dll may be in memory. Consider using Pview to detect and remove it.

Tilsyneladende er der en fejl, i hvert fald er filen ikke 'synlig' med mindre jeg kopierer den til eks. C:\winnt\System32.

I Visual C++ angives en option:  /v "$(TargetPath)". Via regsvr32 /h får jeg ikke denne option ?

Hvor i reg.databasen kan jeg se hvilke dll filer der er registreret ?
Avatar billede mjohansen Nybegynder
14. november 2002 - 14:54 #1
1. Er du sikker på at din DLL indeholder COM objekter? Ellers er det jo ikke nødvendigt at registrere den!

2. Du kan se de registrerede DLLer i HKEY_CLASSES_ROOT\CLSID men der er mange, så du skal nok søge hvis du skal finde en konkret.
Avatar billede steenk Nybegynder
14. november 2002 - 16:14 #2
Næsten i mål! men jeg er ikke helt tilfreds ;-) Jeg er ved at skyde mig ind på at dll'er kommer i flere afskygninger! Min konkrete dll indeholder ikke COM objekter, den indeholder funktioner og er lavet i ren C++ kode (er meget simpel, nærmest HelloWorld agtig). Får jeg en fejlmelding fordi, der ikke er COM objekter i (COM er vel noget MS-relateret og har vel ikke automatisk noget med C++ dll filer at gøre ?) Hvis ikke jeg skal registrere den, hvordan kan jeg så referere til den fra andre C++ programmer ? der er jo ikke en headerfil ?
Avatar billede doctorseb Nybegynder
14. november 2002 - 20:45 #3
Kun COM-objekter skal registreres med regsvr32. I så fald skal den bl.a. eksportere funktionen DllRegisterServer(). Et COM-objekt er ganske rigtigt en M$ opfindelse. Det kan både implementeres som et DLL og som en exe-fil.

Du skal ikke registrere den, men du skal kende dens interface for at kalde funktioner i den. Normalt vha. en eller anden form for header-fil. Hvis den er skrevet i C(++), er der højst sandsynligt også en header-fil et eller andet sted...

Held og lykke,
/doctorseb
Avatar billede steenk Nybegynder
14. november 2002 - 22:13 #4
Jeg er blevet noget klogere på dll filer, men der er pæn stak ubesvarede spm tilbage...(to be continued ;-)
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