OVH Cloud OVH Cloud

[VB6-->VB.NET] ByVal et ByRef

5 réponses
Avatar
Oriane
Bonjour,

une différence majeure entre VB6 et VB.NET est que le premier passe ses arguments par référence par défaut, et le second par valeur.

Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne précise pas le mode de passage ByVal ou ByRef dans le code VB6, le
wizard est-il assez intelligent pour faire figurer ByRef dans la fonction traduite (pour avoir un comportement identique à celui de
VB6) ou faut-il que je le fasse moi-même ?

Merci d'avance

Oriane

5 réponses

Avatar
Thierry HUGUET [MS]
Dans certains cas, l'assistant migration vous alerte et vous indique
d'apporter telle ou telle modification; ou bien il applique automatiquement
le changement et le signale pas le commentaire UPGRADE_WARNING (par exemple
pour le mot clé ParamArray - voir
http://msdn.microsoft.com/library/fre/vbcon/html/vbup1003.asp?frame=true)

Je vous conseille de lire la documentation de VS.NET/VB.NET dont le sujet
est "Référence de mise à niveau Visual Basic". Vous pouvez trouver aussi
cela en ligne sur
http://msdn.microsoft.com/library/fre/vbcon/html/vboriUpgradingFromVisualBasic60.asp?frame=true
et
http://msdn.microsoft.com/library/fre/vbcon/html/vboriVisualBasic60CompatibilityReference.asp?frame=true

Thierry HUGUET
Microsoft


"Oriane" wrote in message
news:cdqohc$3un$
Bonjour,

une différence majeure entre VB6 et VB.NET est que le premier passe ses


arguments par référence par défaut, et le second par valeur.

Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne précise


pas le mode de passage ByVal ou ByRef dans le code VB6, le
wizard est-il assez intelligent pour faire figurer ByRef dans la fonction


traduite (pour avoir un comportement identique à celui de
VB6) ou faut-il que je le fasse moi-même ?

Merci d'avance

Oriane



Avatar
Oriane
Bonjour,

j'ai déjà lu pas mal de choses sur les sites codeproject, gotdotnet, MSDN et autres mais,, ainsi que dans vos références, je ne
trouve pas de réponses claires à ma question.

Oriane

Merci qd même.

"Thierry HUGUET [MS]" a écrit dans le message de news:
| Dans certains cas, l'assistant migration vous alerte et vous indique
| d'apporter telle ou telle modification; ou bien il applique automatiquement
| le changement et le signale pas le commentaire UPGRADE_WARNING (par exemple
| pour le mot clé ParamArray - voir
| http://msdn.microsoft.com/library/fre/vbcon/html/vbup1003.asp?frame=true)
|
| Je vous conseille de lire la documentation de VS.NET/VB.NET dont le sujet
| est "Référence de mise à niveau Visual Basic". Vous pouvez trouver aussi
| cela en ligne sur
| http://msdn.microsoft.com/library/fre/vbcon/html/vboriUpgradingFromVisualBasic60.asp?frame=true
| et
| http://msdn.microsoft.com/library/fre/vbcon/html/vboriVisualBasic60CompatibilityReference.asp?frame=true
|
| Thierry HUGUET
| Microsoft
|
|
| "Oriane" wrote in message
| news:cdqohc$3un$
| > Bonjour,
| >
| > une différence majeure entre VB6 et VB.NET est que le premier passe ses
| arguments par référence par défaut, et le second par valeur.
| >
| > Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne précise
| pas le mode de passage ByVal ou ByRef dans le code VB6, le
| > wizard est-il assez intelligent pour faire figurer ByRef dans la fonction
| traduite (pour avoir un comportement identique à celui de
| > VB6) ou faut-il que je le fasse moi-même ?
| >
| > Merci d'avance
| >
| > Oriane
| >
|
|
Avatar
Zoury
en voici une...

une différence majeure entre VB6 et VB.NET est que le premier passe ses


arguments par référence par défaut, et le second par valeur.

bon point.

Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne précise


pas le mode de passage ByVal ou ByRef dans le code VB6, le
wizard est-il assez intelligent pour faire figurer ByRef dans la fonction


traduite (pour avoir un comportement identique à celui de
VB6) ou faut-il que je le fasse moi-même ?



Tu devrais le faire toi même...
Je crois que le mieux est de toujours spécifier le mode de passage des
arguments et de ne jamais se fier au mode par défaut. Ainsi quand les
concepteurs décident de modifier ces comportements d'une version à l'autre
ça fait un souçis de moins à se préoccuper.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
Stéphane Derhé
Salut Zouri,

Tu as tout à fait raison. Je programme depuis plusieurs années maintenant et
je n'y ai jamais pensé ou pris la peine
de le faire. Lorsque l'on est autodidacte les débuts ne sont pas faciles. Il
faut dire que partout et dans tous les
exemples, personne ne le faisait. Et pourtant lorsqu'on travaille avec l'API
Win32 on peut remarquer qu'elles y sont.
Je vais de ce pas corriger toutes mes fonctions.

A+

"Zoury" a écrit dans le message de
news:
en voici une...

> une différence majeure entre VB6 et VB.NET est que le premier passe ses
arguments par référence par défaut, et le second par valeur.

bon point.

> Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne


précise
pas le mode de passage ByVal ou ByRef dans le code VB6, le
> wizard est-il assez intelligent pour faire figurer ByRef dans la


fonction
traduite (pour avoir un comportement identique à celui de
> VB6) ou faut-il que je le fasse moi-même ?

Tu devrais le faire toi même...
Je crois que le mieux est de toujours spécifier le mode de passage des
arguments et de ne jamais se fier au mode par défaut. Ainsi quand les
concepteurs décident de modifier ces comportements d'une version à l'autre
ça fait un souçis de moins à se préoccuper.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/




Avatar
jeanphicrosoft
Le Fri, 23 Jul 2004 12:16:14 +0200, Oriane a écrit :

Bonjour,

une différence majeure entre VB6 et VB.NET est que le premier passe ses arguments par référence par défaut, et le second par valeur.

Je vais migrer avec l'assistant VS.NET. Si pour un argument on ne précise pas le mode de passage ByVal ou ByRef dans le code VB6, le
wizard est-il assez intelligent pour faire figurer ByRef dans la fonction traduite (pour avoir un comportement identique à celui de
VB6) ou faut-il que je le fasse moi-même ?

Merci d'avance

Oriane



Salut

Sincèrement je ne te conseille pas de faire migrer tes applis;
mieux vaut les reprendre complètement avec VB.NET quitte à perdre un peu
de temps, et ce d'autant plus si tes applis intègrent ADO2. Je puis
t'assurer que le jeu en vaut la chandelle :)

Salutations