Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    134

    [vb6] leggere il contenuto di un indirizzo di memoria

    Premetto che non ne so tanto sull' argomento quindi potrei dire delle boiate.

    in VB6 richiamo una funzione fatta in C che mi riempe una variabile di tipo String con questo valore:

    miaVar = ">&‚A"

    Ora quello che mi pare di aver capito è che la mia variabile è in realtà è un puntatore ad un indirizzo di memoria e ">&‚A" è il valore di tale indirizzo.
    Per leggere il contenuto devo fare (IN DELPHI CREDO)
    codice:
    readln(@miaVar)
    Ma in VB6 qualcuno sa come si legge tale valore?

  2. #2
    per leggere un indirizzo di memoria
    devi usare l'api CopyMemory
    ma quel valore mi pare strano
    mi fai vedere il prototipo della funzione c?
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    134
    uhm.... la funzione in C dovrebbe essere questa:
    codice:
    C_RET cryptGetAttributeString( C_IN CRYPT_HANDLE cryptHandle,
    C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
    C_OUT void C_PTR value,
    C_OUT int C_PTR valueLength )
    la dichiarazione in VB6 è questa:
    codice:
    Public Declare Function cryptGetAttributeString Lib "CL32.DLL" (ByVal cryptHandle As Long, _
     ByVal attributeType As CRYPT_ATTRIBUTE_TYPE, _
     ByVal value As String, _
     ByRef valueLength As Long) As Long
    e la richiamo cosi':
    codice:
    Dim miaVar As String
    miaVar = String(8, " ")
    errcode = cryptGetAttributeString(extraData, CRYPT_CERTINFO_CMS_SIGNINGTIME, miaVar, Len(miaVar))
    il risulatato è miaVar = ">&‚A"

  4. #4
    Originariamente inviato da arcadia
    uhm.... la funzione in C dovrebbe essere questa:
    codice:
    C_RET cryptGetAttributeString( C_IN CRYPT_HANDLE cryptHandle,
    C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
    C_OUT void C_PTR value,
    C_OUT int C_PTR valueLength )
    la dichiarazione in VB6 è questa:
    codice:
    Public Declare Function cryptGetAttributeString Lib "CL32.DLL" (ByVal cryptHandle As Long, _
     ByVal attributeType As CRYPT_ATTRIBUTE_TYPE, _
     ByVal value As String , _
     ByRef valueLength As Long) As Long
    e la richiamo cosi':
    codice:
    Dim miaVar As String
    miaVar = String(8, " ")
    errcode = cryptGetAttributeString(extraData, CRYPT_CERTINFO_CMS_SIGNINGTIME, miaVar, Len(miaVar))
    il risulatato è miaVar = ">&‚A"
    l'errore sta nella dichiarazione tu vuoi trasformare un VOID in un array di CHAR prova piuttosto a passare un long

    e poi fai

    la copymemory di quell'indirizzo per la lunghezza che ti da la funz su un'altra variabile
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

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.