anoniem Geplaatst: 29 oktober 2004 Delen Geplaatst: 29 oktober 2004 Luitjes ik heb een probleempje waar ik niet meet uit kom. Ik heb een DLL filetje gekregen van mijn collega die ik kan gebruiken om het 1 en ander uit te rekenen. Die DLL file kan ik declaren als "sub" om hem dan als sub aan te roepen her en der in mijn progje. De volgende declaratie kreeg ik van hem mee, en die werkt ook! [quote:da13270175] Declare Sub scale1w Lib _ "C:\WINDOWS\scale1w.dll" _ (ByVal TempDir As String, ByVal Length As Long) [/quote:da13270175] Dit werkt naar behoren, alleen wil ik de DLL file niet in mijn windows directory plaatsen, maar in mijn applicatie directory en dan gebruik maken van "App.Path" zodat waar iemand het progje dan ook installeerd hij altijd de DLL kan vinden. Nu mijn vraag dus! Hoe kan ik C:\WINDOWS vervangen voor App.Path?? Ik weet dat het gehele gebeuren tussen quotes moet vanwege de Lib De gehele string zal iets moeten worden als; [quote:da13270175] App.Path & "\scale1w.dll" [/quote:da13270175] Maar hoe zet je deze output tussen quotes? het volgende werkt in ieder geval niet [quote:da13270175] " App.Path & "\scale1w.dll" " [/quote:da13270175] Wie kan mij helpen met die quote hell, het zullen een hoop quotes worden denk ik, maar ik kom er niet uit. Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 Volgens mij werkt het gewoon door C:\WINDOWS\ weg te halen. C:\WINDOWS gebruiken is sowieso smerig omdat die directory ook wel eens G:\WINNT kan heten ;) Als het goed is wordt een DLL vanzelf gezocht in zowel de applicatie-directory als de system(32)-directory. Als je dus die dll in je applicatie-directory zet en schrijft: [quote:5248a603b6]Declare Sub scale1w Lib "scale1w.dll" (ByVal TempDir As String, ByVal Length As Long)[/quote:5248a603b6] dan moet het goedkomen. Opmerking: tijdens het debuggen zou het wel eens niet kunnen werken, zet dan die dll gewoon op je eigen computer wel in de system(32)-directory. Je zult zien dat je programma gecompileerd wel overweg kan met de dll (alleen) in je eigen directory (probeer het eens uit). Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 :D Harstikke bedankt Gecompileerd vindt hij hem inderdaad gewoon in de applicatie directory en inderdaad in debug mode niet, maar ik hem hem even in de system dir gegooid en dat doet hij het voor het debuggen ook gewoon. Alleen straks met het setup maken niet vergeten de dll mee te geven naar de applicatie directory. Nogmaals geweldig, beddankt voor de snelle hulp! Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 en de dubbele quotes los je op met chr$(34) :) Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 [quote:1d2e63443a="webspider"]en de dubbele quotes los je op met chr$(34) :)[/quote:1d2e63443a] Maar in dit geval zou het sowieso niet werken: die strings in de declaratie van een dll MOET een string-constante zijn. App.Path is dat niet, dus mag het niet. (Wat vaak nog makkelijker werkt is escapen: strEenVariabele = "Achter de dubbele punt staat precies 1 dubbel-quote: "" ook al zie je er in de code 2!") Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 escapen werkt niet in VB.... en je mag voor _iedere_ string in principe een variabele geven... Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 [quote:df8b414c19="webspider"]escapen werkt niet in VB.... en je mag voor _iedere_ string in principe een variabele geven...[/quote:df8b414c19] Juist. Bedankt. Niet waar dus. Graag uitproberen voordat je iets zegt. (Ik wil je wel uitleggen waarom je bijv. die string niet van een variabele mag voorzien: die string wordt statisch gecompileerd... maarja, je gelooft me toch niet...) Quote Link naar reactie
anoniem Geplaatst: 29 oktober 2004 Auteur Delen Geplaatst: 29 oktober 2004 [quote:3a382f2efb="Kuhlie"]Juist. Bedankt. Niet waar dus. [/quote:3a382f2efb] ... ALS het al werkt is het weer een voorbeeld van slecht coden, het maakt je code ongelofelijk onoverzichtelijk... Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen