Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Retour d une DLL [ Système / Mémoire ] (ZaRMaS)

mercredi 14 juin 2006 à 14:36:37 | Retour d une DLL

ZaRMaS

Salut a tous,

J ai un petit probleme avec ma dll code en C. Elle retourne un char * et je cherche a recuperer en csharp le retour de cette fonction. Voici ma declaration

      [DllImport("myDll.dll")]
        public static extern unsafe string myFunction([MarshalAs(UnmanagedType.LPArray)] byte[] myData, int width, int height);
Donc elle prend en parametre un tableau de byte et cela ne pose aucun probleme;

Voici la fonction code en C :

 char        *myFunction(char *myData, int Arg_width, int Arg_height)
{
    char *myNewData  =malloc(strlen(myData) * sizeof (char));

    //La fonction remplie myNewData;

    return (myNewData)
}

Ce qui me parait etrange et qui explique pk je psote du code en C c est que ca marche des fois et d autre "non" comme si j avais rate un malloc. APres avoir bien verifie je trouve rien de suspect et donc jeme suis dit que cela pouvait venir du cast entre le string et le char *. Si quelqu un a quelques idees pour m expliquer ce qui pourrait ne pas aller je suis preneur

Merci par avance

jeudi 15 juin 2006 à 00:51:19 | Re : Retour d une DLL

Lutinore

Administrateur CodeS-SourceS

Salut, j'avais remarqué ça l'autre fois ici :

http://www.csharpfr.com/infomsg_DLL_757801.aspx

tu passes un tableau et tu le reçois en tant que pointeur char* dans ton code C. Mais la question que je me pose, il est ou le caractère null '\0' dans ta chaine myData !?

En ce qui concerne le retour de chaine par pointeur char* j'ai vu que Microsoft utilisait CoTaskMemAlloc :

// CPP

DLLIMPORT char* ReturnString()
{
 char* s = (char*)CoTaskMemAlloc( 16 );
 strcpy( s, "Hello World" );
 return s;
}

// C#

[ DllImport( ".." ) ]
private static extern string ReturnString();




Cette discussion est classé dans : code, int, dll, char, retour


Répondre à ce message

Sujets en rapport avec ce message

Prb avec DLL [ par pirate75000 ] C'est la premiere fois que je travail en C#Merci de votre aideJe dois appeller une fonction d'une Dll en c++ c'est ecrit de la maniere suivante:La str int (ASCII) to char (ou string) [ par JuS ] Bonjour amis développeurs cshapriens,Je cherche à récupérer le caractère correspondant à un code ASCII.Comment faire ???//code ASCII du "A"int code = convertion C -> C# [ par LordBob ] Bonjour a tous, voila je cherche à convertire une fonction que j'ai codé en C en C#... voila la fonction C:         static private int MSNBruteForce( Convertion int en char [ par cedkat ] Bonjour,Je doit réecrire une portion de code qui consiste à crypter un fichier text ecrit à l'origine c++.En applicant le même code, je n'arrive pas a C# et Dll C++ [ par rbonnal ] Bonjour a tous !  Je répète que suis aussi fort en Passer un tableau de Byte à une DLL [ par hdr ] Salut à tous,Je souhaiterai utiliser une fonction dans une DLL dont le prototype est :    public virtual int GetImageRawData(ref int pBuf, int bufLen) A propos de backgroundWorker [ par sliverman ] Bonjour à tous, alors voila j'essaye de faire des exemple de code pour comprendre le composant backgroundWorker.Donc j'ai un ListView, un progressbar Passer un pointeur sur tableau de structure [ par olibara ] BonjourDepuis C# j'aimerais appeller une Dll ecrite en CJ'ai plusieurs fonctions dont certaines utilisent un pointeur sur tableau de structure, commen Mise à jour d'un Add-in Excel, plantage de mon code VBA [ par bossun ] Salut, J'ai crée une dll pour étandre les fonctions d'excel. Tout marche bien.. mais le soucis est que lorsque le mets à jour cette DLL, le code VBA d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.