begin process at 2010 02 10 00:02:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

long en long*


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

long en long*

mercredi 1 février 2006 à 10:38:05 | long en long*

ybuchheit

Bonjour,
Je dois appeler une fonction écrite en C et provenant d'une dll. Cette fonction prend comme argument un long*.
Ma fonction est bien déclarée comme suit:
[DllImport("C:\\madll.dll", CharSet=CharSet.Unicode)]
public unsafe static extern int mafonction( long* taillemessage, char* message );
Mais comment faire en cs pour déclarer un long* et le passer en paramètre de ma fonction?
mercredi 1 février 2006 à 10:47:20 | Re : long en long*

coq

Administrateur CodeS-SourceS
Salut,

Attention, le "long" C est 32 bits, le "long" .Net est 64bits, donc je dirais plutôt int* taillemessage.

Pour le passage de paramètre : &mavaleur ?



/*
coq
MVP Visual C#
*/
mercredi 1 février 2006 à 11:18:28 | Re : long en long*

ybuchheit

Merci beaucoup!! J'arrive enfin à appeler la fonction!!
Par contre, il me reste juste un point: le char* de mon fonction. Je passe une string "toto" en paramètre, mais visiblement, il ne prend que la première lettre de la chaîne. Y aurait-il une explication logique? ( Je débute en C, donc désolé si mes questions peuvent paraître bête)
Voici, le code:        

        string sChaineTraite="toto";
int iRetour;
unsafe
{
   fixed(char* scChaineTraite = sChaineTraite)
   {
iRetour=Wrap.mafonction( &iLongueurChaine, scChaineTraite);
   }
}
mercredi 1 février 2006 à 11:25:47 | Re : long en long*

coq

Administrateur CodeS-SourceS
Dans le prototype : char* message => string message (ou StringBuilder message si il s'agit d'un parametre Out ou In/Out)



/*
coq
MVP Visual C#
*/
mercredi 1 février 2006 à 11:45:18 | Re : long en long*

Lutinore

Administrateur CodeS-SourceS

Salut, tu dois pouvoir éviter le code unsafe avec ce prototype :

( Et comme l'a dit Coq tu peux utiliser le type String si le paramètre est en entré seulement. )



[ DllImport( "C:\\MyLib.dll", CharSet = CharSet.Unicode ) ]
public static extern int MyFunction( ref int size, StringBuilder message );

mercredi 1 février 2006 à 11:46:26 | Re : long en long*

Lutinore

Administrateur CodeS-SourceS
Oups, désolé pour le texte en GRAS.
mercredi 1 février 2006 à 11:51:10 | Re : long en long*

coq

Administrateur CodeS-SourceS
Ah oui exact, je n'avais même pas penser à la suppression du code unsafe



/*
coq
MVP Visual C#
*/


Cette discussion est classée dans : fonction, long, dll, charset


Répondre à ce message

Sujets en rapport avec ce message

DllImport [ par RMI ] Bonjour,Je dois dois faire le lien entre une dll C++ et C#La fonction    [DllImport(DLL_NAME, CharSet = CharSet.Ansi, EntryPoint = "MvaSensorNew")]    parametres optionels d'une fonction [ par jul974 ] Bonjour,J'utilise une dll dans une page ASP.Lorsque j'appel une des fonctions de ma dll ,par exempleVersion(), tout va bien ,elle m'affiche bien la ve Probleme sur une dll [ par HansPrestat ] Comment est-ce-que l'on appele une fonction d'une dll (BIBLIOTHEQUE DE COMPOSANT WINDOWS) écrite en C# 2.0 ?Quelle est le code à mettre dans cette mêm Probleme de marshaling [ par darunia ] Salut,Je dois appeler une fonction qui se trouve dans un Dll écrite en C++.Cette fonction prend en entrée des chaine de type wchar_t*.Le probleme est Récupération des données d'une fonction d'une dll native [ par maladebe ] Salut,Je dois récupérer d'une fonction, dans une dll écrite en C/C++, un pointeur sur une structure. Je pensais avoir trouvé comment récupérer les inf Appel de fonction par l'intermédiaire d'une DLL C (problème d'arguments) [ par ScRunCHy ] Bonjour à tous,J'essaie de développer dans le cadre de mon stage une IHM dans laquelle je dois entre autre afficher des images JPEG2000.Il faut que j' Perte d'information IntPtr [ par ScRunCHy ] Salut à tous,J'ai quelques petites difficultés à manipuler ces IntPtr... Dans une classe je déclare un IntPtr :private IntPtr monPtr = IntPtr.Zero;[.. Utilisation d'une DLL delphi dans du code managé C# [ par Prince Dark ] Bonjour,Je suis actuellement dans le but d'utiliser des fonctions non managées contenues dans une DLL ecrite en delphi dans mon code C#.La DLL est fix Importer une DLL C dans un prog C# [ par ybuchheit ] Bonjour, Je dois utiliser des fonctions d'une dll écrite en C. J'ai uniquement les prototypes des fonctions, je n'ai pas accès aux sources. Voici mes


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,296 sec (4)

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