Probleme acces carte PCI

Probleme acces carte PCI - C++ - Programmation

Marsh Posté le 02-12-2005 à 09:50:52    

Bonjour,
 
J suis confronté à un probleme d'accces a une carte PCI, le fabriquant m'a fournit juste une DLL et un header. je ne sais pas comment l'inserer dans un projet VISUAL.NET. j ai naturellement ajouté le header au projet et ajout l'include dans le fichier C++ approprié. mais l"edition de lien ne passe pas.
Le header contient bien les fonctions requise sous la forme suivante:

Code :
  1. __declspec( dllexport ) void setbits (WORD *w, WORD val, WORD pos, WORD len);


j ai essayé d'ajouté la DLL avec

Code :
  1. #using CRAM.DLL

mais la compilation ne passe pas (probleme d'option du compilateur)
en desepoire de cause j ai voulu accedé directement (sans les driver du fournisseur) à la memoire partagée de la carte mais je ne connais pas les fonction sous Windows XP pour lire et ecrire dans les adresses memoires des ressources materielles
 
voila si quelqu'un peu me donné des pistes je l'en remerci
 
Jean Michel

Reply

Marsh Posté le 02-12-2005 à 09:50:52   

Reply

Marsh Posté le 02-12-2005 à 10:29:46    

#using c'est pour une dll .Net.
Vire le, et crée bien un projet C++ normal, pas .Net.
Inclus le header de ta lib, ce que tu as fait je crois, et après compilation & link tu te paye une erreur de link normalement. Pour la résoudre, ajoute le .lib de ta lib à ton projet, et voilà.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 02-12-2005 à 10:58:49    

Le probleme est la justement, le fabricant ne m'as pas fournit de .lib mais juste la dll ( c'est un fournisseur americain et il me certifie qu'on peut coder sans le .lib)

Reply

Marsh Posté le 02-12-2005 à 13:23:19    

Bienvenue dans le monde des LoadLibrary, GetProcAddress et autres joyeusetés :D

Reply

Marsh Posté le 02-12-2005 à 13:32:44    

JMD34 a écrit :

Le probleme est la justement, le fabricant ne m'as pas fournit de .lib mais juste la dll ( c'est un fournisseur americain et il me certifie qu'on peut coder sans le .lib)


Et bien demande lui comment. On peut oui, mais c'est casse couille, et c'est pas normal quand on paye, surtout que ça lui coûte rien de filer le .lib :sarcastic:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 02-12-2005 à 14:48:00    

c'est en cours mais les exemples qu'il m'a envoyé ne sont pas pour mon environement et à chaque fois il manque des librairies ou des headers.
c'est la galere
donc j'ai pensé à refaire les acces à la carte mais comme dit initialement, je ne connais pas les fonctions "Windows XP" du style de "mmap_device_memory" que j'utilise sous QNX

Reply

Marsh Posté le 02-12-2005 à 16:11:27    

La dll fournie sert précisément à ne pas te cogner cela.
C'est Windows qui s'occupe du mapping mémoire. Toi tu (enfin la dll normalement) communiques avec le driver comme s'il s'agissait d'un fichier, ou alors via DeviceIoControl, et là les codes à envoyer sont spécifiques à chaque driver.
Il te faut utiliser cette dll. Le faire dynamiquement via LoadLibrary/GetProcAddress/FreeLibrary est beaucoup beaucoup moins compliqué que ce que tu souhaites faire.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 02-12-2005 à 16:32:52    

Sinon y a moyen de générer la lib d'après la dll avec certains programmes (genre implib), après ça dépend aussi de comment est compilée la dll :/

Reply

Marsh Posté le 05-12-2005 à 11:53:19    

Ok merci a tous, j'arrive à acceder à la dll avec les fonctions LoadLibrary/GetProcAddress/FreeLibrary .

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed