Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Parameter statements and OCX
Message
 
 
Information générale
Forum:
Visual Basic
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00480904
Message ID:
00481272
Vues:
14
Thanks for the example.

The creation of the dll works fine, but when I try to access the function, it gives an error message saying 'cannot find entry point OpenURL in the DLL.

I assumed that when I create a dll the way you described, I can declare the function in this dll the same way like with the function declarations in the other dll's. This would be great, because then I could write my own function libraries in VB and use them from VFP.

Why do I get this error?

>
>Create an activX dll project called Foo
>add a class module called cTest
>add the following code to the module (I added the line extentions to the declares in the UT editor, If you have an error make them single lines)
>After you build you can bind early or late and OpenURL will accept your param.
>
>Option Explicit
>' *****************
>Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
>Private Const INTERNET_OPEN_TYPE_DIRECT = 1
>Private Const INTERNET_OPEN_TYPE_PROXY = 3
>
>Private Const scUserAgent = "VB Project"
>Private Const INTERNET_FLAG_RELOAD = &H80000000
>
>Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
>(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
>ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
>Private Declare Function InternetOpenUrl Lib "wininet.dll" _
>Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, _
>ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, _
>ByVal lContext As Long) As Long
>Private Declare Function InternetReadFile Lib "wininet.dll" _
>(ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _
>lNumberOfBytesRead As Long) As Integer
>Private Declare Function InternetCloseHandle Lib "wininet.dll" _
>(ByVal hInet As Long) As Integer
>
>Public Function OpenURL(ByVal sUrl As String) As String
>    Dim hOpen               As Long
>    Dim hOpenUrl            As Long
>    Dim bDoLoop             As Boolean
>    Dim bRet                As Boolean
>    Dim sReadBuffer         As String * 2048
>    Dim lNumberOfBytesRead  As Long
>    Dim sBuffer             As String
>
>    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, _
>        vbNullString, vbNullString, 0)
>
>    hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, _
>        INTERNET_FLAG_RELOAD, 0)
>
>    bDoLoop = True
>    While bDoLoop
>        sReadBuffer = vbNullString
>        bRet = InternetReadFile(hOpenUrl, sReadBuffer, _
>           Len(sReadBuffer), lNumberOfBytesRead)
>        sBuffer = sBuffer & Left$(sReadBuffer, _
>             lNumberOfBytesRead)
>        If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
>    Wend
>
>    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
>    If hOpen <> 0 Then InternetCloseHandle (hOpen)
>    OpenURL = sBuffer
>
>End Function
>
Christian Isberner
Software Consultant
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform