begin process at 2010 02 10 07:31:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Intéropérabilité C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Intéropérabilité C

mercredi 10 novembre 2004 à 22:08:46 | Intéropérabilité C

facdaar

Salut,

Je désire utiliser une dll native (en l'occurence cellcore.dll, mais peu importe) et j'ai un problème avec une structure en C que je veux déclarer en C# : j'ai beau respecter ce qui est écrit dans MSDN, ou d'autres sources, j'ai toujours l'erreur

The type or namespace name 'MarshalAs' could not be found (are you missing a using directive or an assembly reference?)

Voici la structure en C :


typedef struct simphonebookentry_tag {
DWORD cbSize;
DWORD dwParams;
TCHAR lpszAddress[MAX_LENGTH_ADDRESS];
DWORD dwAddressType;
DWORD dwNumPlan;
TCHAR lpszText[MAX_LENGTH_PHONEBOOKENTRYTEXT];
} SIMPHONEBOOKENTRY, *LPSIMPHONEBOOKENTRY;

et voici ma transcription en C# :

using System.Runtime.InteropServices;
...
[StructLayout(LayoutKind.Sequential)]
public struct SimPhonebookEntry {
public uint cbSize;
public uint dwParam;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszAddress;
public uint dwAddressType;
public uint dwNumPlan;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszText;
}

Est-ce que quelqu'un peut me dire pourquoi j'ai cette erreur alors que dans la littérature, il est écrit que la classe MarshalAsAttribute fait partie de System.Runtime.InteropServices
mercredi 10 novembre 2004 à 22:43:31 | Re : Intéropérabilité C

coq

Administrateur CodeS-SourceS
bizarre en effet
et si tu met


[StructLayout(LayoutKind.Sequential)]
public struct SimPhonebookEntry
{
public uint cbSize;
public uint dwParam;
[System.Runtime.InteropServices.MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszAddress;
public uint dwAddressType;
public uint dwNumPlan;
[System.Runtime.InteropServices.MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public char[] lpszText;
}


ça donne quoi ?


Cocoricoooooooo !!!!
coq
MVP Visual C#
mercredi 10 novembre 2004 à 23:44:23 | Re : Intéropérabilité C

facdaar

Malheureusement, même message, avec juste MarshalAs de sousligné en bleu !

En entête de fichier, j'ai ceci :

using System;
using System.Runtime.InteropServices;

namespace SIM {
...
}

Là, j'avoue que je suis sec...

David
jeudi 11 novembre 2004 à 01:01:43 | Re : Intéropérabilité C

TheSaib

Administrateur CodeS-SourceS
Quel Framework ?

::|The S@ib|::
MVP C#.NET
jeudi 11 novembre 2004 à 09:52:34 | Re : Intéropérabilité C

facdaar

Je travaille avec le framework .NET 1.1 version anglaise, et j'utilise Visual Studio .net 2003

?!?
David.
jeudi 11 novembre 2004 à 10:57:15 | Re : Intéropérabilité C

facdaar

J'ai posté mon code :

Accès à la carte SIM

Il est très court, et je me dis que l'erreur qui s'est glissée dedans doit être vraiment bête, mais comme cela arrive parfois, je bute dessus...

Juste un passionné,
David.
lundi 15 novembre 2004 à 19:37:47 | Re : Intéropérabilité C

coq

Administrateur CodeS-SourceS
euh, Compact Framework != Framework
MarshalAs n'existe tout simplement pas dans le CF


Cocoricoooooooo !!!!
coq
MVP Visual C#


Cette discussion est classée dans : public, dword, uint, marshalas, simphonebookentry


Répondre à ce message

Sujets en rapport avec ce message

Comment mettre une Liste chaine d'une dll dans un projet c# [ par kikoff ] alors voila j'ai dans un dll un liste chaine du genretypedef struct attribut{ struct shobj_att *next; char *nomcol; Conversion API Win32 -> C# [ par merlintintin ] J'aimerais utiliser des fonctions de l'APIen C#. Il faut pour cela redefinir les fonctions et les structures de l'API en C#. Malheureusement, je ne sa Liste processus [ par T103 ] Bonsoir a tous, Voila j'essaye de faire un programme qui m'affiche tous mes processus actif.Voici le code donc :[DllImport("KERNEL32.DLL",SetLastError Erreur DeviceIOControl : Fonction Incorrecte [ par tuxama ] Bonsoir,Je tente de récupérer quelques caractéristiques de mon disque physique principal.DeviceIOControl me retourne une erreur '1' : Fonction Incorre dllimport passage de structure en char * [ par toni93330 ] Bonjour,Voila, je sais qu'il y a pas mal de post sur les dllimport en c#, mais je n'ai pas trouvé ce que je cherche (ou mal ?).Alors voila j'ai une dl Process WinCE [ par churrros ] Bonjour! du C/C++ au C# [ par louvinon ] Bonjour,on me fournit une DLL faites en C++/C.En C++, j'ai ceci : typedef struct{ UCHAR cnv_name [8]; ULONG lgd_utcc; ULONG lgd_phys; ULONG lgd_m Interface générique et héritage [ par thiosyiasar ] Boujour,  J'ai un fournisseur de se Utiliser une instance comme propriété [ par lemmingperceval ] Bonjour, Est-ce quelqu'un connait la façon d'utiliser une instance en tant que propriété? Un petit exemple pour aider: Class1.cs public class Box { pointeurs et structure [ par olibara ] Bonjour,Je sais que bidou va encore me dire de faire de la speleo essai / erreur sur MSDN mais c'est tellement plus rapide et convivial qsuand on peut


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales