Déclarer un type word en c#

sheebe Messages postés 9 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 23 mars 2007 - 18 févr. 2006 à 11:54
sheebe Messages postés 9 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 23 mars 2007 - 18 févr. 2006 à 12:34
Bonjour, je programme en ce moment en c# une carte à relais permettant d'actionner un gachette de porte pour mon projet de bts voici mon code:

using System.Text;
using System.Runtime.InteropServices;
using System;
using System.Collections.Specialized;

namespace pInvok
{

class Class1
{
[DllImport("Winio.dll")]
public static extern bool InitializeWinIo();
//
[DllImport("Winio.dll")]
public static extern bool SetPortVal(word wPortAddr, dword dwPortVal, byte bSize);

static void Main(string[] args)
{
word wPortAddr = 0x300;
dword dwPortVal = 0x2F;
byte bSize = 4;
bool bVerifInit;
//
bVerifInit = InitializeWinIo();
Console.WriteLine(" Init Ok ") ;
Console.ReadLine();
if (bVerifInit)
{
Console.WriteLine(" Init Ok ") ;

// Ouverture de la porte
SetPortVal(wPortAddr,dwPortVal , bSize);
Console.WriteLine(" Ouverture de la porte ok ") ;
Console.ReadLine();

}
else
{
Console.WriteLine(" Problème d'initialisation ") ;
}

Mon problème est que quand je compile il me dit : "Le type ou le nom d'espace de noms 'word' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)"
Je recherche depuis hier soir sur le net et sur l'aide mais je ne trouve rien hélas donc si quelqu'un a la réponse c'est vraiment simpa!!

Bon week end

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 févr. 2006 à 12:05
Salut,

C'est normal, c'est un type défini pour le code non managé.
Jette un oeil à cette page de la doc : Types de données d'appel de plate-forme

/*
coq
MVP Visual C#
*/
0
sheebe Messages postés 9 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 23 mars 2007
18 févr. 2006 à 12:18
Pfou je suis vraiment je ne vois pas quoi rajouter
J'ai essayer de rajouter un using system.UInt 16 mais sa ne marche pas, j'ai rajouter aussi la structure

[SerializableAttribute]
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public struct UInt16 :

Mais toujours rien comment faire?
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 févr. 2006 à 12:25
Tu devrais commencer par faire quelques recherches sur le PInvoke et le COM Interop avant de te lancer dedans :-)

[DllImport("Winio.dll")]
public static extern bool SetPortVal(UInt16 wPortAddr, UInt32 dwPortVal, byte bSize);

/*
coq
MVP Visual C#
*/
0
sheebe Messages postés 9 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 23 mars 2007
18 févr. 2006 à 12:27
J'ai déja fait quelque recherche sur le pinvoke, je regarderais le com interop merci des conseil.
Si je comprend bien Uint 16 remplace le type word en c# c'est sa?
0

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

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 févr. 2006 à 12:31
C'est en tout cas le type équivalent à utiliser pour les appels de plateforme.
Tu pourras obtenir des informations sur les autres types que tu pourras rencontrer dans l'API Win32 sur cette page : Windows Data Types.

/*
coq
MVP Visual C#
*/
0
sheebe Messages postés 9 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 23 mars 2007
18 févr. 2006 à 12:34
Merci beaucoup, je repars dans mon code et je vais regarder un peu tout ce que tu m'as dit, ce n'est pas toujours facile de tout comprendre mais je m'accroche(bien obliger c'est pour avoir mon bts héhé)

bye et encore merci, surment a bientot
0
Rejoignez-nous