Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Prodave - conversione byte to bit in vb6


Messaggi consigliati

Inserito:

Salve a tutti,

sto cercando di utilizzare la funzione chiamata "byte_2_bool_ex6" in questo modo:

(interno di module1.bas)

Global lVal As long

Global iaVal(7) As Integer

Declare Function byte_2_bool_ex6 Lib "Prodave6.dll" (ByVal Value As Long, pBuffer() As Integer)

(interno di form1)

Private Sub Command1_Click()

lVal = 2

Call byte_2_bool_ex6(lVal, iaVal())

Text1.Text = iaVal(0)

End Sub

Ricevo sempre l'errore che "iaVal()" non e' dello stesso formato che la funzione si aspetta.

Ho provato molte e molte varianti ma se si segue la documentazione (con esempi solo in C e non vb) , questo dovrebbe essere il modo giusto di usare questa funzione.

3.3.7 byte_2_bool_ex6

The function byte_2_bool_ex6 converts a byte into 8 logical values (PC

representation).

void byte_2_bool_ex6 (unsigned char Value, int * pBuffer);

Parameters

Value

[in] Byte value

pBuffer

[out] pointer on buffer with 8 converted logical values

Return Values

none

Call examples

The transferred pointer should point to an unsigned char field with the following

structure:

Buffer[0] Buffer[1] Buffer[2] Buffer[3] Buffer[4] Buffer[5] Buffer[6] Buffer[7]

bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7

#define SIZE_BOOL_BYTE 8

int Buffer[size_BOOL_BYTE]; // Buffer for 8 logical values

unsigned char Value = 1;

byte_2_bool_ex6 (Value, Buffer); // TRUE will be delivered in Buffer[0], FALSE

in BUFFER[1]-[7].

Requirements

V5.6 byte_boolean V6.0 byte_2_bool_ex6

Windows: 2000, XP

Header: PRODAVE6.H

Library: PRODAVE6.DLL

io continuo a provare, ma incomincio a sentirmi leggerissimamente stanco.

Grazie a tutti.


Inserita:

primo grosso errore e' che sull'esempio che riportano dichiarano

Declare Function byte_2_bool_ex6 Lib "Prodave6.dll" (ByVal Value As Long, pBuffer As Integer)

ma come si puo' vedere la funzione non restituisce nulla , quindi deve essere

Declare Sub byte_2_bool_ex6 Lib "Prodave6.dll" (ByVal Value As Long, pBuffer As Integer)

ma ancora non funziona.

vediamo chi arriva prima.

ciao

Inserita:

Non ho ancora utilizzata la Prodave 6.0 ma ho sentito che non gira tanto bene come la V 5.6 <_<

Declare Function byte_2_bool_ex6 Lib "Prodave6.dll" (ByVal Value As Long, pBuffer As Integer)

ma come si puo' vedere la funzione non restituisce nulla , quindi deve essere

Declare Sub byte_2_bool_ex6 Lib "Prodave6.dll" (ByVal Value As Long, pBuffer As Integer)

No.

Il body della function e' fondata nella Prodave6.dll

Dovrebbe essere..

In "Value" li passi il valore del byte.

In "pBuffer" ricavi il riferimento al primo indice del array..[0], etc... caduno elemento con i valori per i bit.

Se ti servono delle funzioni di questo genere le puoi trovare qui

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...