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 :

convertir un programme C# en VB.net [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut convertir un programme C# en VB.net
    Bonjour, j'ai récupéré un exemple de programme en C# qui utilise un DLL pour convertir des points de localisation cartographique, et en faite je souhaite l'incorporer dans mon programme en VB.NET, alors j'ai éssayé ceci

    le programme en C# :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using ConversApi;
     
    namespace Exemple
    {
        class Program
        {
            static void Main(string[] args)
            {
                Conversion Conv = new Conversion();
     
                if (File.Exists("Convers.xml")) // Configuration à partir d'un fichier xml
                {
                    Conv.ReadXml("Convers.xml");
                }
                else // Configuration manuelle
                {
                    // Ajout des ellipsoïdes
     
                    Conv.AddEllipsoid("WGS84", "WGS 1984", 6378137, 6356752.314245, 0);
                    Conv.AddEllipsoid("CLRK80IGN", "Clarke 1880 IGN", 6378249, 6356515, 0);
     
                    // Ajout des systèmes géodésiques
     
                    Conv.AddDatum("WGS84", "World Geodetic System 1984", "WGS84", 0, 0, 0);
                    Conv.AddDatum("NTF", "Nouvelle Triangulation Française", "CLRK80IGN", -168, -60, 320);
     
                    // Ajout des projections
     
                    Conv.AddProjection("UTM.WGS84", "Universal Transverse Mercator / WGS84;UTM;WGS84;0.9996");
                    Conv.AddProjection("LT2E", "Lambert France zone II étendue;LAMBCC2;NTF;45.5356108°;47.4145652°;2.2014025°;52g;6e5;2.2e6");
     
                }
     
                // Point à convertir en Lambert II étendu (kilomètres)
     
                Location from = new Location(869.269, 2078.565, "LT2E", Units.KM);
     
                // Résultat en Lat / Lon WGS84 (degrés minutes secondes, Greenwich)
     
                Location to = new Location(0,0,"WGS84",Units.DMS,Meridians.GREENWICH);
     
                // Conversion et affichage du résultat
     
                Conv.Convert(from, to);
                from.Format(Conv);
                to.Format(Conv);
     
                Console.WriteLine("Lambert II étendu : X = {0} Y = {1}", from.sXLon, from.sYLat);
                Console.WriteLine("WGS84             : {0} {1}", to.sYLat, to.sXLon);
     
                // Conversion en UTM
     
                to.Key = "UTM.WGS84";
                to.Unit = Units.MT;
                to.Mer = Meridians.NONE;
     
                Conv.Convert(from, to);
                to.Format(Conv);
     
                Console.WriteLine("UTM / WGS84       : {0:00}{1} {2} {3}", to.Zone, to.Designator, to.sXLon, to.sYLat);
     
                Console.Read();
                }
        }
    }
    et la transformation en vb.net :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Text
    Imports System.IO
    Imports ConversApi
     
    Public Class Form1
        Dim Conv As New Conversion()
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If File.Exists("Convers.xml") Then
                ' Configuration à partir d'un fichier xml
                Conv.ReadXml("Convers.xml")
            Else
                ' Configuration manuelle
                ' Ajout des ellipsoïdes
     
                Conv.AddEllipsoid("WGS84", "WGS 1984", 6378137, 6356752.314245, 0)
                Conv.AddEllipsoid("CLRK80IGN", "Clarke 1880 IGN", 6378249, 6356515, 0)
     
                ' Ajout des systèmes géodésiques
     
                Conv.AddDatum("WGS84", "World Geodetic System 1984", "WGS84", 0, 0, 0)
                Conv.AddDatum("NTF", "Nouvelle Triangulation Française", "CLRK80IGN", -168, -60, 320)
     
                ' Ajout des projections
     
                Conv.AddProjection("UTM.WGS84", "Universal Transverse Mercator / WGS84;UTM;WGS84;0.9996")
     
                Conv.AddProjection("LT2E", "Lambert France zone II étendue;LAMBCC2;NTF;45.5356108°;47.4145652°;2.2014025°;52g;6e5;2.2e6")
            End If
     
            ' Point à convertir en Lambert II étendu (kilomètres)
     
            Dim from As New Location(869.269, 2078.565, "LT2E", Units.KM)
     
            ' Résultat en Lat / Lon WGS84 (degrés minutes secondes, Greenwich)
     
            Dim [to] As New Location(0, 0, "WGS84", Units.DMS, Meridians.GREENWICH)
     
            ' Conversion et affichage du résultat
     
            Conv.Convert(from, [to])
            from.Format(Conv)
            [to].Format(Conv)
     
            Label1.Text = "Lambert II étendu : X = {0} Y = {1}" & from.sXLon & from.sYLat
            Label2.Text = "WGS84             : {0} {1}" & [to].sYLat & [to].sXLon
     
            ' Conversion en UTM
     
            [to].Key = "UTM.WGS84"
            [to].Unit = Units.MT
            [to].Mer = Meridians.NONE
     
            Conv.Convert(from, [to])
            [to].Format(Conv)
     
            Label3.Text = "UTM / WGS84       : {0:00}{1} {2} {3}" & [to].Zone & [to].Designator & [to].sXLon & [to].sYLat
     
        End Sub
    End Class
    j'ai rajouter la référence à "ConversApi.dll" mais c ne fonctionne pas l’obtient ce message au lancement :

    System.InvalidOperationException was unhandled
    Message="Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est*: Impossible de charger le fichier ou l'assembly 'ConversApi3, Version=3.0.5.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect."
    Source="WindowsApplication4"
    StackTrace:
    à WindowsApplication4.My.MyProject.MyForms.Create__Instance__[T](T Instance) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 190
    à WindowsApplication4.My.MyProject.MyForms.get_Form1()
    à WindowsApplication4.My.MyApplication.OnCreateMainForm() dans C:\Users\laurent\Documents\Visual Studio 2005\Projects\WindowsApplication4\WindowsApplication4\My Project\Application.Designer.vb:ligne 35
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    à WindowsApplication4.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
    à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart()

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    je ne suis pas un expert en C, mais si tu veux que l'on puisse t'aider il serait bien de savoir à quelle ligne ça plante.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Tout d'abord ce que tu dit être un programme en C n'est pas du C mais du C# (rien à voir).

    Ensuite c'est curieux, car j'ai utilisé un moment cette bibliothèque dans des projets .Net et sans difficultés.

    J'ai du l'abandonner par la suite (car elle est incompatible avec le SQLCLR en raison de déclarations static non readonly) mais en dehors de ce contexte elle n'a jamais posé le moindre problème.

    Sinon, comme déjà dit supra par asmduty, si tu ne nous dit pas quelle ligne plante, je ne vois pas ce qu'on peut faire pour toi.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Tout d'abord ce que tu dit être un programme en C n'est pas du C mais du C# (rien à voir).
    J'avais même pas lu que c'était du C# ...
    Donc en effet si tu nous dis où ça plante je serai peut être en mesure de t'aider.

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par asmduty Voir le message
    J'avais même pas lu que c'était du C# ...
    Le "using" en tête de code ne laisse aucune place au doute

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    je viens de vois sur le site de l'éduteur du DLL qu'il n'est pas compatible avec .net il avait été fait pour vb6, donc j'ai télécharger la version ConversApi3 pour dot.net

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment convertir mon code ASP et ASP.Net ?
    Par yushkoya dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/07/2006, 17h24
  2. [TP 7] Convertir un programme en Delphi en pascal
    Par diden138 dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 21/05/2006, 21h42
  3. Convertir un programme Visual c++ vers C++ builder
    Par Skarlix dans le forum C++Builder
    Réponses: 11
    Dernier message: 16/10/2004, 22h51

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