fg85
Messages postés370Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention13 avril 2007
-
24 juin 2006 à 19:01
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
24 juin 2006 à 20:43
Bonjour tout le monde,
Je dev pas mal en VB6 mais là j'ai besoin de faire une migration vers VB.NET, et je dois avouer avoir quelques problèmes .
Voici les lignes qu'il n'accepte pas en VB.NET :
Private Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type
[...]
Dim udtData As COPYDATASTRUCT
[...]
Abs(r_bshow)
[...]
udtData.lpData = StrPtr(sBuffer)
udtData.cbData = LenB(sBuffer)
[...]
VarPtr(udtData)
Voila donc si vous connaissez l'équivalent des différentes fonctions en VB.NET et aussi de "COPYDATASTRUCT" je vous en serai grandement reconnaissant.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 juin 2006 à 20:23
Salut
Pour le StrPtr et VarPtr : En effet, .Net ne l'accepte pas (impossible il me semble).
Sans avoir essayé, je pense que :
- Pour ta structure Type : Essaye en changeant le nom de la Structure (des fois que mot réservé).
- LenB : N'existe plus en .Net car toutes les chaines (String) sont en Unicode. Donc Len suffit
- Abs : Math.Abs(maVar)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 juin 2006 à 20:42
La déclaration des structure en .NET a changer. Désormais il faut utiliser le mot clé Structure, et indiqué un modificateur d'accès (Public, Private, Friend, ou Dim) pour chaque variable de la structure :
Private Structure COPYDATASTRUCT
Public dwData As Long
Public cbData As Long
Public lpData As Long
End Structure
La fonction LenB n'est plus prise en charge en .net. Elle servait à retourner le nombre d'octets d'une chaine contrairement à Len qui retournait le nombre de caractères. En .net il faut utiliser la fonction Len qui retourne le nombre de caractères de la chaine, sachant qu'en .net, toutes les chaines sont au format Unicode, donc 2 octets par caractères.
La fonction Abs est devenue en .net, une méthode de la classe Math, et s'utilise ainsi : résultat=Math.Abs(r_bshow)
Les fonctions VarPtr et StrPtr ne sont plus maintenues en .net. Elles n'ont pas de remplaçantes Les fonctionnalités de .net permettent normalement de n'avoir plus besoin d'utiliser ces fonctions. Il faut que tu revois et modifie ton code pour faire autrement ce qui t'ammenais à utiliser ces fonctions.