J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai
pas réussi à faire une fonction avec un paramètre passé par "valeur"
genre fct(int* arg) ou fct(int& arg).
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
adebaene
Sylvain Bénot wrote in message news:...
Bonjour,
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai pas réussi à faire une fonction avec un paramètre passé par "valeur" genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence (ou poointeur). Le passage par valeur c'est fct(int arg).
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le problème?
Arnaud
Sylvain Bénot <sylvain.benot@wanadoo.fr> wrote in message news:<40195268.7040307@wanadoo.fr>...
Bonjour,
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai
pas réussi à faire une fonction avec un paramètre passé par "valeur"
genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence
(ou poointeur). Le passage par valeur c'est fct(int arg).
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le
problème?
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai pas réussi à faire une fonction avec un paramètre passé par "valeur" genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence (ou poointeur). Le passage par valeur c'est fct(int arg).
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le problème?
Arnaud
Sylvain Bénot
Salut !!
Arnaud Debaene a écrit:
Sylvain Bénot wrote in message news:...
Bonjour,
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai pas réussi à faire une fonction avec un paramètre passé par "valeur" genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence (ou poointeur). Le passage par valeur c'est fct(int arg).
Exact, je mélange toujours les appelations !!!!!
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le problème?
J'ai juste oublié une petite précision, c'est que j'utilise la class faite en C++ managé dans du VB ensuite.
Voici mon petiti bout de code :
========== C++ ============================== namespace Test { public __gc class Class1 { public: // TODO : ajoutez ici vos méthodes pour cette classe. void fct(int val); void fct1(int* val ); void fct2(int &val ); }; }
void Test::Class1::fct( int val ) { val = val + 1; }
void Test::Class1::fct2( int& val ) { val = val + 1; }
============== VB =================================== Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim toto As New Test.Class1 Dim x As Integer
x = 4 toto.fct(x) 'Appel de fct correct mais x pas modifié MessageBox.Show(CStr(x)) toto.fct1() 'fct1 a un type de retour ou des types de paramètres non pris en charge MessageBox.Show(CStr(x)) toto.fct2(x) 'fct2 a un type de retour ou des types de paramètres non pris en charge MessageBox.Show(CStr(x)) End Sub
Voilà pourquoi je disais que ça ne marche pas. J'ai merdé alors ou ce n'est plus possible ?
Merci
Sylvain
Arnaud
Salut !!
Arnaud Debaene a écrit:
Sylvain Bénot <sylvain.benot@wanadoo.fr> wrote in message news:<40195268.7040307@wanadoo.fr>...
Bonjour,
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai
pas réussi à faire une fonction avec un paramètre passé par "valeur"
genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence
(ou poointeur). Le passage par valeur c'est fct(int arg).
Exact, je mélange toujours les appelations !!!!!
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le
problème?
J'ai juste oublié une petite précision, c'est que j'utilise la class
faite en C++ managé dans du VB ensuite.
Voici mon petiti bout de code :
========== C++ ============================== namespace Test
{
public __gc class Class1
{
public:
// TODO : ajoutez ici vos méthodes pour cette classe.
void fct(int val);
void fct1(int* val );
void fct2(int &val );
};
}
void Test::Class1::fct( int val )
{
val = val + 1;
}
void Test::Class1::fct2( int& val )
{
val = val + 1;
}
============== VB ===================================
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim toto As New Test.Class1
Dim x As Integer
x = 4
toto.fct(x) 'Appel de fct correct mais x pas modifié
MessageBox.Show(CStr(x))
toto.fct1() 'fct1 a un type de retour ou des types de paramètres
non pris en charge
MessageBox.Show(CStr(x))
toto.fct2(x) 'fct2 a un type de retour ou des types de paramètres
non pris en charge
MessageBox.Show(CStr(x))
End Sub
Voilà pourquoi je disais que ça ne marche pas.
J'ai merdé alors ou ce n'est plus possible ?
J'ai bidouillé rapidement le C++ managé dans Visual Studio .NET et j'ai pas réussi à faire une fonction avec un paramètre passé par "valeur" genre fct(int* arg) ou fct(int& arg).
Ca, ce n'est pas du passage par valeur mais du passage par référence (ou poointeur). Le passage par valeur c'est fct(int arg).
Exact, je mélange toujours les appelations !!!!!
C'est moi qui est merdé ou ça ne fonctionne plus comme ça ?
Ca marche très bien. Peux-tu poster un exemple de code qui démontre le problème?
J'ai juste oublié une petite précision, c'est que j'utilise la class faite en C++ managé dans du VB ensuite.
Voici mon petiti bout de code :
========== C++ ============================== namespace Test { public __gc class Class1 { public: // TODO : ajoutez ici vos méthodes pour cette classe. void fct(int val); void fct1(int* val ); void fct2(int &val ); }; }
void Test::Class1::fct( int val ) { val = val + 1; }
void Test::Class1::fct2( int& val ) { val = val + 1; }
============== VB =================================== Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim toto As New Test.Class1 Dim x As Integer
x = 4 toto.fct(x) 'Appel de fct correct mais x pas modifié MessageBox.Show(CStr(x)) toto.fct1() 'fct1 a un type de retour ou des types de paramètres non pris en charge MessageBox.Show(CStr(x)) toto.fct2(x) 'fct2 a un type de retour ou des types de paramètres non pris en charge MessageBox.Show(CStr(x)) End Sub
Voilà pourquoi je disais que ça ne marche pas. J'ai merdé alors ou ce n'est plus possible ?