Type de donné c -> vb

igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005 - 5 avril 2005 à 14:13
cheMoor Messages postés 20 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 13 mai 2009 - 2 déc. 2007 à 21:46
comment traduit on en vb un type de donné void * qui vient d'une fonction c ?

7 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
5 avril 2005 à 16:42
Pour les déclaation de DLL, g croi k c as Any.


Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)



NH
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
5 avril 2005 à 22:44
En gros, void ça veut dire rien, vide. Donc, tu peux traduire :

void Truc(void)
par
Function Truc()
ou
Sub Truc()

Explik : dans ce cas, c'est une procédure (ou fonction) qui ne reçoit aucun paramètre et qui n'en retourne aucun.

par comparaison, on pourrait remplacer :

Int Truc(void)
par
Function Truc() as Integer

Loup Gris
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 avril 2005 à 08:02
Mais void * est un type qui passe l'adresse de n'importe kel ty^pe de données :



Pour une fonction/sub : as variant

pour une DLL : as Any


Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)



NH
0
igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005
6 avril 2005 à 10:03
merci les gars mais c un autre probleme:

j'ai une dll VC++ que je doit utiliser sous vb

la fonction en C c'est :

ComRead

comInt ComRead (int com_handle, void *read_data, int read_number, long options)

com_handle interface handle from ComOpen
read_data pointer to the receiving buffer of the caller
read_number length of the receiving buffer
options not used

j'ai fait un wrapper de cette dll et la fonction s'apelle sous vb vbComRead
j'ai utilisé d'autres fonction de cette nouvelle dll et elles fonctionnent mais pas celle ci !

Et voici ce que j'ai programmé sous vb:

Private Declare Function vbComRead Lib "VB3964R.dll" (ByVal com_handle As Integer, _
read_data As Any, ByVal read_number As Integer) As Integer

Public Sub lire_Click()
code_err = vbComRead(handle_com, buf_lecture, 4096)
Print code_err
End Sub

le problème c'est qu'a ce moment vb ce fige. Est-ce que fais mal quelque chose ?

au fait je débute dans VB donc il se peut que je fasse des erreurs!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 avril 2005 à 10:16
Private Declare Function vbComRead Lib "VB3964R.dll" (ByVal com_handle As Integer, _
read_data As Any, ByVal read_number As Integer) As Integer


Il faut mettre un alias si le nom dans la DLL est différent de celui du code.

de plus, il manque un param.









Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)




NH
0
igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005
6 avril 2005 à 11:02
non le nom dans la dll est le meme j'ai modifié la dll pour pouvoir l'utiliser sous vb

et le dernier parametre "option" n'est pas utilisé dans la fonction !
0
cheMoor Messages postés 20 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 13 mai 2009
2 déc. 2007 à 21:46
salut
le problem que VB se plante est du (j pense type de donné c -> vb)

C
comInt ComRead (int com_handle, void *read_data, int read_number, long options)

VB de igorpastis
Private Declare Function vbComRead Lib "VB3964R.dll" (ByVal com_handle As <gras>Integer
, _
 read_data As Any, ByVal read_number As Integer) As Integer

VB de Che Moor
Private Declare Function vbComRead Lib "VB3964R.dll" (ByVal com_handle As long, _
 read_data As Any, ByVal read_number As long) As long (pour le code de reture je ne suis pas sur ,car je ne sais pas le type comInt)

visiter ce lien ;
http://pagesperso-orange.fr/visual.basic/type.htm

ich bin here
0
Rejoignez-nous