IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Type DATE en VB6.. à convertir en VB.NET ?


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Par défaut Type DATE en VB6.. à convertir en VB.NET ?
    Bonjour,

    J'ai une dll vb6 qui contient cette fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function Term_SetTime Lib "Bp02SCK.dll" (ByVal FDate As Date, ByVal FTime As Date) As Int16

    J'ai pour mission de récupérer la date et l'heure d'un appareil lié à cette DLL.

    Cependant, il y a un probleme au niveau du format de la date / heure..


    J'ai créé un bouton permettant d'updater la date et l'heure sur l'appareil lié à la DLL. L'heure s'affiche bien sur mon appareil, mais il semblerait que le format de la date, de l'heure ou des deux soit incorrecte. C'est une supposition, vu que j'ai un probleme au niveau des autres fonctions de la DLL quand j'appelle la fonction Term_SetTime.

    Voici la fonction appelée quand j'appuie sur le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     Private Sub UpdateClock()
     
     
            Dim TNo As Integer
            Dim SNo As Short
     
    'Term_CommCall est une Fonction de la DLL VB6
            If Term_CommCall(TNo, SNo) = -1 Then
     
                MsgBox("Failed")
     
            Else
     
                If Term_SetTime(DateValue(Format(DateTime.Now, "yyyy-MM-dd")), TimeValue(Format(DateTime.Now, "HH:mm:ss"))) = 0 Then
                    MsgBox("Failed!", 16, "ERT")
                Else
                    MsgBox("Date et heure envoyée", 65536, "ERT")
                End If
     
     
            End If
        End Sub
    Ma question : Le type Date en VB6 est-il le même en VB.NET ? Cela pourrait-il engendrer des bugs?

    Merci.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    relire cet Rubrique (extrait Msdn doc):

    Modifications des types de données pour les utilisateurs de Visual Basic 6.0
    Une Date est stockée sous un format Double utilisant huit octets

    Dans Visual Basic 2008, le type de données Date utilise le type de données DateTime du Common Language Runtime, qui est une valeur entière codée sur huit octets. En raison de ces représentations différentes, il ne peut y avoir de conversion implicite entre les types de données Date et Double. Pour passer de Double à la représentation Visual Basic 6.0 de Date, utilisez les méthodes ToOADate et FromOADate de la structure DateTime dans l'espace de noms System.
    il faudrait revoir cette declaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
      Public Class Form1
        Private dt1 As Date
        Private double1 As Double
        Private dt2 As Date
        Private double2 As Double
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
     
     
     
            Dim n As Int16 = Term_SetTime(double1, double2)
            MessageBox.Show(Date.FromOADate(double1).ToLongDateString, Date.FromOADate(double2).ToLongDateString)
        End Sub
     
        Public Declare Function Term_SetTime Lib "Bp02SCK.dll" (ByVal FDate As Double, ByVal FTime As Double) As Int16
     
    End Class
    bon code...

Discussions similaires

  1. le Type Date en VB6
    Par pherve dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/05/2013, 10h53
  2. [VB.net 2005] convertir chaine de caractère en type 'date'
    Par kinganasius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/07/2006, 23h14
  3. [VB.Net/Dataview] Comment gérer un filtre sur une colonne de type date ?
    Par silatchom dans le forum Accès aux données
    Réponses: 3
    Dernier message: 07/07/2006, 19h28
  4. [VB.Net] cast du type 'DataRowview' en type 'Date' non valide
    Par badnane2 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/06/2006, 15h50
  5. [VB6] convertire une date en string
    Par acrenn dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/05/2006, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo