Type perso ?

Signaler
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
19
[StructLayout(LayoutKind.Sequential)]
public class FSOUND_SAMPLE
{
}

::|The S@ib|::
MVP C#.NET
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
j'ai du mal a saisir là

Cocoricoooooooo !!!!
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
19
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
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
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 !!!!