Accueil > Forum > > > > utilise une fonction c++
utilise une fonction c++
mercredi 23 février 2005 à 22:47:24 |
utilise une fonction c++

amiro
|
j'utilise cette fonction dans une DLL pour l'appeler en vb cette fonction fonctionne correctement en vc. void liste_adap(char * device_name) { /* Vars */ pcap_if_t *alldevs; pcap_if_t *d; char error[PCAP_ERRBUF_SIZE]; /* Trouve toutes les interfaces */ pcap_findalldevs(&alldevs, error); for(d=alldevs;d!=NULL;d=d->next) { strcpy(device_name,d->name); } } le probléme c'est que visual basic se plante lorsque je fais l'appel à la fonction:
Private Declare Sub liste_adap Lib "d:\test.dll" (ByVal adap_name As String)
Private Sub Command1_Click() Dim name_adap As String Call liste_adap(name_adap) End Sub comment puis résoudre ce probléme: j'ai d'autre fonction qui retourne des types simples int,float mais qui fonctionne correctement ezzi
|
|
mercredi 23 février 2005 à 22:57:59 |
Re : utilise une fonction c++

casy
|
As-tu essayé :
Private Declare Sub liste_adap Lib "d:\test.dll" (ByRef adap_name As String)
Les chaines de caractères entre VB et C c'est pas toujours évidents, j'ai régulièrement moi aussi des problèmes.
Si le cerveau était assez simple pour que nous puissions le comprendre,
nous serions assez bête pour ne pas le comprendre malgré tout.
|
|
jeudi 24 février 2005 à 00:14:32 |
Re : utilise une fonction c++

Gobillot
|
aucune dll ne peut changer la taille d'une chaîne passée par VB
Daniel
|
|
jeudi 24 février 2005 à 07:55:24 |
Re : utilise une fonction c++

casy
|
Réponse acceptée !
Exact, j'avais pas vu
en vb il faut faire
Dim name_adap As String * xxx 'avec xxx = la longueur maxi de ta chaine
ou tu peut faire aussi dans le code avant l'appel de la dll : name_adap = space(xxx)
sinon en C quand tu remplis ta chaine, en fait tu écrase les
autres variables stocké en mémoire après cette chaine, avec en retour,
au mieux des valeurs érronnées et au pire un magnifique BSOD
Si le cerveau était assez simple pour que nous puissions le comprendre,
nous serions assez bête pour ne pas le comprendre malgré tout.
|
|
jeudi 24 février 2005 à 09:00:13 |
Re : utilise une fonction c++

amiro
|
Merci cassy,votre deuxiéme proposition a résolu mon probléme  ezzi
|
|
jeudi 24 février 2005 à 09:08:17 |
Re : utilise une fonction c++

amiro
|
mais je ne vois pas l'utilité de la fonction Space car la programme fonctionne sans cette fonction
ezzi
|
|
jeudi 24 février 2005 à 09:37:27 |
Re : utilise une fonction c++

casy
|
Il faut que ta chaine soit dimentionner (en gros que l'espace en mémoire soit réservé) avant l'appel de ta fonction dll.
Alors soit tu le fait lors de la déclaration, tel que je te l'ai
indiqué, soit tu garde ta déclaration comme tu l'avait fait au départ
et dans ce cas il faut dimentionner ta chaine en cours d'exécution.
Dans ce cas la fonction space(xxx) en ecrivant xxx espace dans ta chaine, la dimentionne automatiquement.
Tu utilise une deux solutions, les deux à la fois ce n'est pas utile.
La seconde (avec space) peut éventuellement etre utile si tu veux donner des tailles différentes à ta chaine.
Si le cerveau était assez simple pour que nous puissions le comprendre,
nous serions assez bête pour ne pas le comprendre malgré tout.
|
|
jeudi 24 février 2005 à 09:53:39 |
Re : utilise une fonction c++

amiro
|
est ce que tu peux me donner un exemple d'une fonction qui retourne une structure et comment peut on l'appeler à partir de vb car je n'arrive pas à le faire
ezzi
|
|
jeudi 24 février 2005 à 10:19:54 |
Re : utilise une fonction c++

casy
|
Pour VB :
déclarations :
Public Type ST_TEST
Var1 As Long
Var2 As Single
Var3 As Single
Var4 As Long
Var5 As Long
End Type
Public TaStruc As ST_TEST
Public Declare Sub TaFonctionDll Lib "TaDll.DLL" (ByRef TaStruc As ST_TEST)
Appel :
Call TaFonctionDll(TaStruc)
Pour la Dll :
déclaration :
typedef struct
{
int var_1;
float var_2;
float var_3;
int var_4;
int var_5;
}ST_C_TEST;
Utilisation :
void TaFonctionDll(ST_C_TEST *pt)
{
........
pt->var_1 = 1;
pt->var_2 = 2;
........
}
Si le cerveau était assez simple pour que nous puissions le comprendre,
nous serions assez bête pour ne pas le comprendre malgré tout.
|
|
jeudi 24 février 2005 à 11:45:45 |
Re : utilise une fonction c++
|
Cette discussion est classée dans : fonction, utilise, name, pcap, adap
Répondre à ce message
Sujets en rapport avec ce message
Savoir si un objet est Nothing [ par Talere ]
Bonjour,J'utilise la fonction Range.find d'Excel et lorsque qu'aucune cellule est trouvée, la fonction renvoie "Nothing". Je cherche à savoir si l'obj
Fonction vbscript [ par gastong ]
Bonjour, J'essaye d'appeller une fonction VBScript qui est déclencher lors de l'évenement "UNLOAD" du . Je n'ai aucune difficulté à appeler une fonc
Fonction replace en VBA, problème [ par Spylover ]
Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e
Problème fonction replace(,,,) en VBA [ par Spylover ]
Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e
capture paquet [ par amiro ]
j'ai utiliser une fonction appartenant a la dll wpcap.dllje le declare comme suit mais ça m'affiche cette erreur lors de son appel Text1.Text = pcap_l
Quel DLL utilise la fonction SEND [ par maxwells ]
Bonjour je voudrais savoir quel DLL ou quel OCX utilise la fonction send de VB pour en voyer des mailMerci à tousM@xwells<FONT color=#0
name !!! renommer un répertoire... [ par mathomtb ]
Développeuses, développeurs !! J'ai un prob avec la fonction Name qui est censé renommé un repertoire... je comprends pas pourquoi, peut être parce qu
Avec le debugger ca marche mais sans... ca marche pas [ par firens ]
Hello, voila mon prob bizarre... j'ai fais une fonction qui permet de placer une valeur TRUE dans un tableau en fonction de certaines comparaisons..
maudite Arctangente [ par johan_geii ]
Salut à tous :) J'ai quelques soucis d'utilisation de la fonction Arctangente. Lorsque j'utilise cette fonction (atan ou atan2), j'obtiens toujours d
datePart bug? [ par Jomba ]
bonjour,j'utilise dans un de mes programmes la fonction datepart :Dim test AsInteger<font
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
FAIRE UN EXECUTABLEFAIRE UN EXECUTABLE par ossama261988
Cliquez pour lire la suite par ossama261988
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|