08. september 2000 - 17:22Der er
9 kommentarer og 2 løsninger
Visual Basic DLL i Delphi...
Jeg er færd med et lille projekt. Jeg vil gerne lave en CPL fil (Control Panel Extension) til et par af mine Visual Basic DLL\'er. Men hvis jeg laver en DLL i VB og omdøber denne til CPL, så vises denne ikke i kontrol panelet. Dette gør den hvis man laver den i Delphi. Der er sågar en applications wizard, hvis man ønsker at lave cpl filer. Men... jeg har fundet ud af at man i Delphi kan importere, såkaldte \"Type Libraries\", og her stå min DLL og listet. Så kan man lave en TLB-fil.
Er der nogen som aner noget som helst om hvordan jeg for \'created\' denne TLB?
Jeg har en Public Function som hedder ShowForm, og dette er alt som behøves, men når jeg prøver, så kommer der ikke andet end \'Access Violations\' og \'Runtime 217\' fejl.
I delphi, under menupunktet Project findes et punkt kaldet \"Import Type Library\". Det er den funktion du skal bruge tila t importere dit bibliotek og det er den funktion der laver din TLB fil.
TLB extensionen hentyder til \"Remote Automation Typelib files\", det er filer der benyttes når en dll skal refereres remote. Måden du får den bygget på er ved at vælge \"remote server component\"i properties i dit VB dll projekt. Når du herefter vælger at bygge din dll, bliver der automatisk bygget en .tlb fil også. Så ved du det...
Der er bare det at det ikke helt lyder til at det er det du har behov for, og jeg er ikke sikker på at jeg helt har forstået hvad det er du egentlig vil....?
Hvis du vil til at lave programmer i Delphi, der kan \"arbejde\" sammen med andre programmer, fx. ved at kunne kaldes fra Visual Basic eller MicroSoft Word, så er den åbenlyse vej frem, at lære noget om COM teknologi.
Der er flere bøger der i den sammenhæng kan anbefales, men helt klart den bedste (af dem jeg kender) er \"Delphi COM programming\" af Eric Harmon (ISBN: 1-57870-221-6). Den er forholdsvis ny (feb. 2000 så vidt jeg husker) og har hoved fokus på Delphi 5, men går dog tilbage til Delphi-COM starten i Delphi 3 hvis der er forskelle i implementationen. 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. \"Delphi COM programming\" er små 500 sider koncentreret stof.
Uden at have arbejdet med CPL filer (eller ret meget med VB for den sags skyld), så ser det ud til at VB\'s DLL\'er ikke includerer noget som skal bruges af Windows i en DLL. Det bør dog være rimeligt simpelt at kalde din ShowForm metode fra en Delphi application. Denne application laver du så om til en CPL - ved at omdøbe den som du siger.
Hmmm... det var faktisk lidt for ikke at skulle ud og investere i tykke bøger, at jeg spurgte. Jeg har faktisk selv genneskuet lidt problemerne, og har mere eller mindre selv fundet en løsning. Hoved problemet er nu blot at de DLL\'er som jeg har programmeret i Visual Basic kræver en ADODB connection, som sættes via en property. Disse properties kan jeg ikke få sat fra Delphi.
Men I skal have tak for hjælpen alligevel. Så skal det heller ikke rygtes at jeg er nærig med min hårdt tjente points. Så vi deler dem...
Hmmm... det var faktisk lidt for ikke at skulle ud og investere i tykke bøger, at jeg spurgte. Jeg har faktisk selv genneskuet lidt problemerne, og har mere eller mindre selv fundet en løsning. Hoved problemet er nu blot at de DLL\'er som jeg har programmeret i Visual Basic kræver en ADODB connection, som sættes via en property. Disse properties kan jeg ikke få sat vha Delphi.
Men I skal have tak for hjælpen alligevel. Så skal det heller ikke rygtes at jeg er nærig med min hårdt tjente points. Så vi deler dem... (En trediedel til hver).
Du ku ikke gi dig selv point, for du havde ikke selv svaret - kun lavet en kommentar.
Synes godt om
Ny brugerNybegynder
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.