Type perso ?

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 15 juin 2004 à 11:00
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 15 juin 2004 à 13:17
C++ :
typedef struct FSOUND_SAMPLE    FSOUND_SAMPLE;


une methode de ce type
FSOUND_SAMPLE * F_API FSOUND_Sample_Load(...)

sera de ce type en C#
IntPtr FSOUND_Sample_Load(...)


ma question est : peut ton en gros faire un equivalent du typedef en C# ? (bon d'apres mes recherches non mais on sait jamais ptet que quelqu'un a une astuce ^^)

En gros je voudrais que ma methode se presente ainsi :
FSOUND_SAMPLE FSOUND_Sample_Load(...)


vous me direz :
using FSOUND_SAMPLE	 = System.IntPtr;


mais justement non, l'utilisation d'un alias ne repond pas vraiment au besoin car de l'exterieur la methode sera toujours vue comme retournant un System.IntPtr

donc en gros il faudrais que je puisse definir mon propre type comme etant un "clone" de IntPtr, type naturellement utilisable de l'exterieur de l'assembly

c'est marrant comme question hein ? ^^

Cocoricoooooooo !!!!

4 réponses

TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
15 juin 2004 à 11:59
[StructLayout(LayoutKind.Sequential)]
public class FSOUND_SAMPLE
{
}

::|The S@ib|::
MVP C#.NET
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
15 juin 2004 à 12:08
j'ai du mal a saisir là

Cocoricoooooooo !!!!
0
TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
15 juin 2004 à 12:32
Pas grave :)

Fait du code unsafe tu aura le droit a tes pointeur & co

ex :
using System;  
class Test  
{  
   static int value = 20;  
   
   unsafe static void F(out int* pi1, ref int* pi2) {  
      int i = 10;  
      pi1 = &i;  
      
      fixed (int* pj = &value) {  
         // ...  
         pi2 = pj;  
      }  
   }  
   
   static void Main() {  
      int i = 10;  
      unsafe {  
         int* px1;  
         int* px2 = &i;  
         
         F(out px1, ref px2);           Console.WriteLine("*px1 {0}, *px2 {1}",  
         *px1, *px2);  // undefined behavior  
      }  
   }  
}  

::|The S@ib|::
MVP C#.NET
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
15 juin 2004 à 13:17
ok

bon je sens que je V rester dans du code "sûr" et me servir direct d'un IntPtr sur ce coup là
tant pis pour le nom ils auront qu'a mettre les alias et se referer a l'aide pour savoir exactement quel "type" est representé par le IntPtr pour la fonction donnée

merci :)

Cocoricoooooooo !!!!
0