Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203

    [vb6] Dll

    Ciao a tutti,

    ho creato una DLL

    e la dichiaro in vb6 con

    Private Declare Function CercaID Lib "List.dll" (ByVal User As String, ByVal PAss As String, ByVal nID As String) As String

    il tutto funziona correttamente, però avrei bisogno di importare il valore di una variabile pubblica dichiarata all'interno della DLL

    in pratica la funzione CercaID all'inderno della dll setta un valore più varibili pubbliche

    pome posso fare per poter usare quelle variabbili all'interno del mio proggetto ?


    ho cercato online ma non ho trovato una soluzione

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Puoi fare in diversi modi:

    - aggiungere alla funzione un parametro di output, ovvero un parametro dichiarato ByRef invece che ByVal

    - passare una struttura oppure un array (sempre ByRef)

    - farti restituire una struttura anzichè un String


  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203
    ok ora ci provo!

    Grazie mille

    un'altra cosa, la dll da me creata è scritta sempre in VB6
    e seguendo questa guida: http://www.visual-basic.it/articoli/agDllByVB.htm

    riesco a dichiararla come se fosse un'api con "Private Declare Function"

    ora: se uso la DLL inserendola come riferimento mi sono accorto che funziona in modo corretto

    se invece uso il modo su citato con "Private Declare Functio"

    mi sono accorto che la funzione CercaID invece di restituirmi la stringa con le varie informazioni, mi restituisce solo la prima lettera della stringa....

    hai idea di quale possa essere il problema ?


    Tnks

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da S0nic
    ok ora ci provo!

    Grazie mille
    Prego

    Originariamente inviato da S0nic
    un'altra cosa, la dll da me creata è scritta sempre in VB6
    e seguendo questa guida: http://www.visual-basic.it/articoli/agDllByVB.htm
    Il caro amico Antonio Giuliana... Troppo forte!

    Originariamente inviato da S0nic
    riesco a dichiararla come se fosse un'api con "Private Declare Function"

    ora: se uso la DLL inserendola come riferimento mi sono accorto che funziona in modo corretto

    se invece uso il modo su citato con "Private Declare Functio"

    mi sono accorto che la funzione CercaID invece di restituirmi la stringa con le varie informazioni, mi restituisce solo la prima lettera della stringa....

    hai idea di quale possa essere il problema ?

    Tnks
    Senza conoscere il codice posso solo risponderti: non ne ho idea.



  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203
    vero sorry

    il codice della DLL

    codice:
    Public Function CercaID (ByVal User As String, ByVal PAss As String, ByVal nID As String) As String
    
    dim url As String
    
    dim urlstring As String = "?username=" & User & "&password=" & PAss & "&search=" & nID
    
    url = "http://www.indirizzoweb/pagina.html"
    
    Dim ID As String
    
    ID= Empty
    
    'Creo L'oggetto InternetExplorer
    
    Dim IE As Object
     Set IE = CreateObject("InternetExplorer.application")
    
        On Error Resume Next
          IE.Visible = False
          IE.ToolBar = 0
          IE.Navigate url & urlstring 
    
        While IE.Document.ReadyState <> "complete"
             DoEvents
        Wend
    
    ID = IE.Document.frames("mainFrame").Document.All.Item("ID_Name").Value
    
    
          IE.Quit
          Set IE = Nothing
    
    
    CercaID = "Account ID: " & ID
    
    
    End Function

    consigli ? :P

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203
    praticamente ho notato se faccio

    Public Function CercaID (ByVal User As String, ByVal PAss As String, ByVal nID As String) As Variant

    quindi creo la funzione con Variant
    il tutto funziona....

    a questo punto mi chiedo, come mai con String mi da problemi ?

    Ringrazio a chi riesce a rispondermi

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La funzione sembra OK.
    Però non avendola non è possibile testarla.

    Si potrebbe supporre che qualcosa nella creazione della DLL non sia andato come dovrebbe. Chissà, magari rivedendo i passaggi.

    Però se ti funziona con un tipo Variant è già qualcosa.

    Però nel suo articolo l'amico Antonio mostra due funzioni che restituiscono rispettivamente un Long ed una String...

    Hai provato a codificare/recodificare la stringa con StrConv () come nell'esempio di Antonio?
    Come vedi, quando lui crea la funzione StrRevTest,
    prima di utilizzare la stringa Antonio la codifica in vbUnicode, poi la elabora, ed infine la ricodifica con vbFromUnicode prima di restituirla.

    Tentar non nuoce...


  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203
    nada...
    fatto esattamente ciò che fa lui
    ma addirittura non passa nessun valore
    bho

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    203
    risolto con:

    codice:
    CercaID = StrConv(CercaID , vbFromUnicode)

    Grazie mille x i consigli

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da S0nic
    risolto con:

    codice:
    CercaID = StrConv(CercaID , vbFromUnicode)

    Grazie mille x i consigli
    Prego.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.