Gå til innhold

ActiveX DLL - Hvilke filer trenger jeg?


Anbefalte innlegg

Videoannonse
Annonse

Det er dll-fila du skal registrere i registeret (regsvr32.exe) om det er det du tenker på.

 

Her har du et eksempel med et vbs-script der jeg bruker en dll-fil som skriver og leser tekst i forhold til clipboard.

 

Set f = CreateObject ("dllProject.clip")

f.TextToClipboard("ole dole doffen")

MsgBox(f.TextFromClipboard)

 

dllProject er prosjektnavnet til vb ActiveX dll project,

clip er navnet på klassemodulen og TextToClipboard og TextFromClipboard er to public function i klassemodulen.

Lenke til kommentar

regsvr32.exe finner du i system32-mappa. Slik bruker du den:

 

I kjørboksen taster du inn slik:

 

regsvr32.exe "C:\Documents and Settings\Eier\Mine dokumenter\minedll\print.dll"

 

og klikker så ok.

 

I dette eksempel har jeg registrert print.dll som ligger i mappa minedll. Merk anførselstegna rundt filreferansen, fordi den innholder ordmellomrom.

Lenke til kommentar

Prøvde det nå på denne DLL som jeg skrev i C++.

Er ikke god i C++, men programmet som skal bruke den tar bare imot c++ dll'er...

Da fikk jeg feilmeldingen:

"(path) was loaded, but the DllRegisterServer entry point was not found.

 

This file can not be registred."

 

Her er koden til DLLen, sikkert der feilen ligger

#include "stdafx.h"
#include <math.h>


BOOL APIENTRY DllMain( HANDLE hModule, 
                      DWORD  ul_reason_for_call, 
                      LPVOID lpReserved
     )
{
   return TRUE;
}


Pluss(int x, int y)
{
return x+y;
}

Lenke til kommentar

Formelerte meg sikkert litt dårlig, men det programmet ikke likte(Det som skal bruke DLLen)var at det var en ActiveX DLL.

 

Kompilerte en DLL nå(med koden over) og fikk:

Math.dll

Math.ilk

Math.obj

Math.pch

Math.pdb

StdAfx.obj

vc60.idb

vc60.pdb

 

Hva trenger jeg alle de til?

Språket jeg prøver å kalle DLLen med heter Dark Basic Pro, og her er koden jeg har brukt i Dark Basic Pro(DBP)

load dll "Math Lib.dll", 1
svar = call dll(1, "Pluss", 6,6)
print svar
wait key

 

Ser ikke noen feil på DBP siden..

Lenke til kommentar

Bare en kommentar til tråden

Hvis du/kunden bruker Vista så må man være pålogget som administrator for å få registrert med Regsvr32. Det holder ikke at man er medlem av administrators. Man må faktisk være pålogget SOM administrator. Jeg sleit skikkelig med dette fordi jeg skulle registrere en OCX for å komuisere med en kortleser. Dette lot seg ikek gjøre og ingen kunne svare meg. Så jeg ga vel egentlig opp og fortsatte med XP. Etter et halvt års tid bestemte jeg meg for å gå over til Vista og glemte hele problemstillingen, noe jeg smertelig fikk erfare, men da bestemte jeg meg for ikke å gi opp. Fant helt tilfeldig ut at hvis man var pålogget som administrator så blei OCX'en registrert.

 

Bare så dere veit det ;-)

Lenke til kommentar
Bare en kommentar til tråden

Hvis du/kunden bruker Vista så må man være pålogget som administrator for å få registrert med Regsvr32.  Det holder ikke at man er medlem av administrators.  Man må faktisk være pålogget SOM administrator.  Jeg sleit skikkelig med dette fordi jeg skulle registrere en OCX for å komuisere med en kortleser.  Dette lot seg ikek gjøre og ingen kunne svare meg.  Så jeg ga vel egentlig opp og fortsatte med XP.  Etter et halvt års tid bestemte jeg meg for å gå over til Vista og glemte hele problemstillingen, noe jeg smertelig fikk erfare, men da bestemte jeg meg for ikke å gi opp.  Fant helt tilfeldig ut at hvis man var pålogget som administrator så blei OCX'en registrert.

 

Bare så dere veit det ;-)

9334669[/snapback]

Det er det de så fint prøver å kalle "sikkerhet" :p

Lenke til kommentar
Det er det de så fint prøver å kalle "sikkerhet" :p

9334937[/snapback]

 

Jeg syntes det er genialt. Særlig for utviklere. Det gir en veldig enkel og grei måte å faktisk teste ut ting uten å være administrator. Samtidig som man har fordelene med å "være administrator" ved å veldig enkelt høyreklikke og "run as administrator" - eller får opp dialogboksen "Windows needs your confirmation to continue". I tillegg kan man sjekke hva som skjer om brukeren ikke er administrator ved å velge "Cancel" i denne.

 

I XP måtte man enten lage 2 brukere og logge av/på hele tiden for å teste... Eller bruke tungvinne runas.exe.

Lenke til kommentar
....Samtidig som man har fordelene med å "være administrator" ved å veldig enkelt høyreklikke og "run as administrator" - eller får opp dialogboksen "Windows needs your confirmation to continue"...

 

Hadde verden bare vert så enkel du :-)

Greia er at jeg faktisk måtte logge meg PÅ som administrator. "Run as" funker ikke i dette tilfellet. Men generelt sett er jeg veldig enig med deg i dette.

 

Ole

Lenke til kommentar
Hadde verden bare vert så enkel du :-)

Greia er at jeg faktisk måtte logge meg PÅ som administrator. "Run as" funker ikke i dette tilfellet.  Men generelt sett er jeg veldig enig med deg i dette. 

 

Ole

9335665[/snapback]

 

Det ER så enkelt. Jeg gjorde det selv for 1 minutt siden nå for å teste.

høyreklikk på cmd.exe - "start as admin".

REGSVR32 mindll.dll

 

Mulig det er noe som har blitt fikset i nyere oppdateringer, men som har vært et problem tidligere...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...