Probleme de Variable

Signaler
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour à tous,

Voilà mon code :

unsigned char Valeur[6];
Valeur=Inp32(0x379);
SetDlgItemText(hwnd , IDC_AFFICHAGE_RESULT, Valeur);

Je veux afficher la lecture de mon port // dans une fenetre.

Mais voila, quand je veux recuperer la variable ça se passe mal.
Il me dit :

cannot convert parameter 3 from 'unsigned int [6]' to 'const char *'

Je sais bien qu'il faut utiliser un buffeur, quand il s'agit de reprendre dans un edit avec la commande GetWindowText pas de prob mais là ....

Merci de votre aide.

17 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
ça retourne quoi ce 'Inp32()' ??? que je ne connais pas.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004

C'est _Inp et _Outp fonctionnant sous Windows 95/98/Me/NT/2000/XP/2003 en utilisant inpout32.dll.

Testé et marche parfaitment avec WindowsXP et simplicité de mise en place.

Sinon mon code est juste ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
NON Valeur = RIEN D'AUTRE QUE LUI MEME !!!
Valeur est un pointeur, tu ne lui affecteras rien.
Quel est le type retourne par Inp32 ???

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004

Sous dos j'avais cree une petite application qui marche :


#include <stdlib.h>
#include <stdio.h>

short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);

void main(void)
{
unsigned int Valeur;

printf("Test de lecture du port //\n");

Valeur=Inp32(0x379);	// La valeur du bus de donnes est rengee dans la variable Valeur

printf("Valeur lue :",Valeur);
}



Et il me retourné soit 120 bouton ouvert et 255 bouton fermé.

Je ne comprend pas pourquoi il y a une si grosse difference en API.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
unsigned int Valeur; // prog dos
unsigned char Valeur[6]; // prog du jour

Tu ne vois pas la difference ???

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004

Si, mais c'est flou ..

Même


unsigned int Valeur;
Valeur=Inp32(0x379);

SetDlgItemText(hwnd , IDC_AFFICHAGE_RESULT, Valeur);



Toujours l'erreur à la compilation.

Peux etre faut il utiliser uen autre commande que SetDlgItemText ?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
SetDlgItemInt() ou convertir avant dans un buffer avec ultoa.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
BruNews > c'est meme pire que ca, ecrire
unsigned int Valeur;
Valeur=Inp32(0x379); est tout ce qu'il ya de plus illogique

Valeur n'est pas une variable mais un tableau (pas un pointeur) c'est à dire une adresse
ecrire Valeur=Inp32(0x379); c'est aussi bete que d'ecrire
5 = Inp32(0x379);

un tableau n'est pas une l-value
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
et je ne sais toujours pas le type retourne par ce 'Inp32' qui m'est inconnu.
Contrairement a ce qui est dit dans l'exemple en console, ce n'est pas une API.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ca doit etre un const char * comme ecris dans son premier post
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
serait bizzare qu'on recupere un pointeur en sortie de port, devrait pointer sur quoi ?
Dans tous les cas on n'utilise pas d'interruptions a notre epoque, cachee ou non dans une bibli, TERMINE !!!

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004

Je vois ce que vous voullez dire, un buffer serai donc l'issue ?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui, et à exploiter avec strcpy ou memcpy
Messages postés
20
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
28 juillet 2004

Connaisez vous un bon tuto sur les pointeurs ?

Je n'ai pas trouve grand chose sur MSDN

Encore merci pour vos reponses
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
Messages postés
16
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
15 mars 2013

Salut je voudrais ecrire sur le port // d'un pc sous windows XP et visual C++.
J'ai recuperer inpout32.dll mais je n'arrive pas a utilise Inp32() et Out32().
J'ai ecrit :
short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);

valeur=Inp32(0x379)
Out32(0x378, valeur1)

Le programme compile correctement mais il y a 2 erreur au "linkage":
unresolved external symbol _Inp32@4
unresolved external symbol _Out32@8.

Merci de m'indiquer comment utiliser inpout32.dll; kes kil fo en faire?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Regarde pour cela les sources de ymca2003, aucun besoin de dll externe.
http://www.cppfrance.com/code.aspx?id=18704
http://www.cppfrance.com/code.aspx?id=22441

ciao...
BruNews, MVP VC++