ybuchheit
Messages postés13Date d'inscriptionlundi 31 octobre 2005StatutMembreDernière intervention 1 février 2006
-
14 nov. 2005 à 10:04
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
14 nov. 2005 à 14:03
Bonjour,
je débute en C# et je dois créer une application CS utilisant une dll écrite en c.
J'arrive à appeler toutes les fonctions de la dll sauf celle prenant en argument un varchar* . Comment faire pour convertir les string en varchar* afin de pouvoir appeler la fonction?
A voir également:
La conversion d'un type de données varchar en type de données datetime a créé une valeur hors limites
ybuchheit
Messages postés13Date d'inscriptionlundi 31 octobre 2005StatutMembreDernière intervention 1 février 2006 14 nov. 2005 à 12:01
Erreur de compilation "L'opérateur * ou -> doit être appliqué à un pointeur"
Voici l'appel de la fonction:
int iRetour;
char[] scChaineTraite = sChaineTraite.ToCharArray();
unsafe
{
iRetour= Wrap.ComTGCEcrire(sChaineTraite.Length, *scChaineTraite);
}
et la déclaration de la fonction:
public unsafe static extern int ComTGCEcrire(long taillemessage, char* message);
[DllImport("C:\\siemens\\Srv_tgc\\inttgc_dll.dll", CharSet=CharSet.Ansi)]
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 14 nov. 2005 à 12:59
Pour un argument de type char* on peut utiliser le type string sauf que si la fonction modifie la chaine il faut passer un StringBuilder sinon la version de Seb avec le buffer fixé marche aussi.
ybuchheit
Messages postés13Date d'inscriptionlundi 31 octobre 2005StatutMembreDernière intervention 1 février 2006 14 nov. 2005 à 13:20
CA MARCHE!!
Merci énormément, car j'ai vraiment eu du mal à trouver quelque chose qui marche sur internet pour convertir le string en varchar*. Mille fois merci !!
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 14 nov. 2005 à 14:03
Ce que je veux dire c'est que LPSTR c'est un char*, c'est pour ça que je lui propose le StringBuilder. Mais moi aussi je préfère ecrire mes prototypes avec des pointeurs.