-
[C#] ajouter une dll
je veux ajouter une dll, une API appartient au logiciel NETICA, je lé ajouter dans References>Add References>Comtab>Netica object Library Ver 1.0;
Est ce que je doit pas utiliser autre chose ? sachant que cette library est utilisé en C et C++, dailleur il y'a un exemple en C++ qui utilise Netica.h ,Netica.lib, Netica.dll et NeticaEx.h,
le problem qui se pose que c'est pas la meme la syntax, par exemple dans l'exemple net_bn* net; mais lorsque je l'ecris dans C#, il me dit erreur:The type or namespace name 'net_bn' could not be found (are you missing a using directive or an assembly reference?)
aidez moi SVP, merci d'avance
-
Je te conseille l'article suivant concernant l'utilisation de DLL native.
http://nico-pyright.developpez.com/t...c2005/interop/
-
Le pb qui se pose que cette dll est la meme pour C, C++ et C#, jai un exemple en C, qui contient NeticaEx.c, Netica.h, NticaEx.h, Netica.dll, et Netica.lib qui marche a merveille dans C, mais malheureusement pas dans C++;
jai ajouter sans pb dans Refference>linker>input>Netica 1.0 Library, mais en regardant dans le code de NiticaEx.c il y'a des fonctions qu'il utilise, il y'a plusieurs et tout en haut, il est ecrit
/*_____________________________________________________________
All programs using Netica API should contain code equivalent to this.
One possibility is to copy this code into your own routine named "main".
No Netica API function should be called before NewNeticaEnviron_ns or after
CloseNetica_bn, and most of them must not be called before InitNetica_bn.
*/ _____________________________________________________________
aidez moi à résoudre cet enorme pb, merci
-
beh, normalement, t'as librairie NEticaEx, elle doit exporter des fonctions (regarde avecl 'outil Dependency Walker par exemple)
A partir du moment ou t'as DLL export des fonctions, il n'y a AUCUNE raisons
pour que celles-ci ne soit pas appelable via le DllImport de C#... aucune vraiment ;)
(par contre, il te faut peut-etre définir certaines structures que ces fonctions
peuvent prendre en entrée ou en sortie ;)
The Monz, Toulouse