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

OpenGL Discussion :

Utilisation d'OpenGL plus moderne avec .NET


Sujet :

OpenGL

  1. #1
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 936
    Points : 1 288
    Points
    1 288
    Par défaut Utilisation d'OpenGL plus moderne avec .NET
    Bonjour à tous,

    Je continue à developer un logiciel de CAO / FAO commencé en 2011
    Il est codé avec VB.NET, avec quelques parties en C#

    Pour l'affichage en 3D et aussi en 2D, j'utilise Open GL avec la DLL OpenTK version 1.0.278.44921

    Je me dis que ça doit être obsolète...

    Surtout que j'utilise une méthode assez ancienne (qui devait correspondre au début d'Open GL), à savoir qu'à chaque affichage j'envoie toutes les données

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
                        GL.Begin(BeginMode.Triangles)
                        For j = 0 To STL_ListeT.Count - 1
                            STL_ListeT_Current = STL_ListeT.Item(j)
                            STL_ListeColor3_Current = STL_ListeColor3.Item(j)
                            n = STL_ListeT_Current.Count \ 12
                            For i = 0 To n - 1
                                GL.Color3(STL_ListeColor3_Current.Item(i))
                                k = 12 * i
                                GL.Normal3(STL_ListeT_Current.Item(k), STL_ListeT_Current.Item(k + 1), STL_ListeT_Current.Item(k + 2))
                                GL.Vertex3(STL_ListeT_Current.Item(k + 3) + dtx3D, STL_ListeT_Current(k + 4) + dty3D, STL_ListeT_Current.Item(k + 5) + dtz3D)
                                GL.Vertex3(STL_ListeT_Current.Item(k + 6) + dtx3D, STL_ListeT_Current.Item(k + 7) + dty3D, STL_ListeT_Current.Item(k + 8) + dtz3D)
                                GL.Vertex3(STL_ListeT_Current.Item(k + 9) + dtx3D, STL_ListeT_Current.Item(k + 10) + dty3D, STL_ListeT_Current.Item(k + 11) + dtz3D)
                            Next
                        Next
                        GL.End()

    Curieusement ça reste assez rapide, ça ne commence à perdre en fluidité que lorsque la pièce compte plus de 200.000 triangles et ça devient pénible voir inutilisable au delà de 1.000.000 de triangles

    Une fois l'objet affiché, avec la souris :
    - je ne fait que bouger le point de vue (ou l'éclairage)
    - parfois je modifie, j'ajoute ou je retire juste quelques éléments

    Il serait plus pertinent, lors des mouvements de pièces à la souris au lieu de tout renvoyer à chaque fois, de pouvoir réutiliser les données dans la carte graphique et de changer seulement la position de la caméra et de l'éclairage.

    Ca serait bien, si c'est possible, de pouvoir modifier, supprimer ou ajouter des elements en laissant des autres dans la carte graphique. Mais si j'arrive déjà à ne pas renvoyer toutes les données à chaque affichage ça sera très bien.

    J'utilise les objets suivants avec Open GL :
    - Lines
    - LineStrip
    - LineLoop
    - Quads
    - QuadStrip
    - Triangles
    - TriangleStrip
    - TriangleFan

    Si besoin je peux me passer des Quads, des TriangleStrip et TriangleFan pour n'utiliser que des triangles.
    En revanche, j'ai besoin d'afficher des lignes, ça serait une grosse galère de créer des cylindres de petit diamètre à la place.

    J'utilise aussi la transparence, ce façon modérée mais nécessaire (une surface plane au dessus de la pièce, pour visualiser un plan de coupe ou un niveau)

    J'ai des fenêtres comportant plusieurs zones OpenGL que mon programme affiche en même temps (typiquement : vue en 3D, vue de dessus en 2D, et vue en coupe en 2D), ça aussi c'est nécessaire

    EDIT : j'ai aussi besoin de pouvoir afficher les triangles 'à l'envers', avec une couleur dédiée, dans un mode d'affichage de mon programme (pour vérifier la présence de surfaces orientées dans le mauvais sens)

    Enfin, si on pouvait afficher quelques textes de façon simple ça serait super mais c'est un détail.

    Ne m'étant pas intéressé au sujet depuis des années, je ne sais pas trop ce qu'il en est...
    Vous me conseillez quoi ?
    Je ne cherche pas la toute dernière version ; simplement une méthode plus optimale, on va dire un compromis moins obsolète
    Comme dit au début, c'est un logiciel fait en .NET, le logiciel doit tourner sous Windows 7 et suivants.
    Un compatibilité avec Windows XP serait un plus mais je peux m'en passer (NB : il y a souvent des ordinateurs anciens associés aux machines d'usinage, car la mécanique n'évolue pas aussi vite que l'informatique)

    A bientôt

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 225
    Points : 10 168
    Points
    10 168
    Par défaut
    Je te conseille d'utiliser au moins OpenGL 3 , vu que oui ta méthode est obsolète et super lente.
    (Et OpenGL 3 est le bon compromis, vu que de nos jours ,c'est plus Vulkan qui devrait être conseillé et OpenGL 4 est obsolète et complexe ).

  3. #3
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 936
    Points : 1 288
    Points
    1 288
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Je te conseille d'utiliser au moins OpenGL 3 , vu que oui ta méthode est obsolète et super lente.
    (Et OpenGL 3 est le bon compromis, vu que de nos jours ,c'est plus Vulkan qui devrait être conseillé et OpenGL 4 est obsolète et complexe ).
    Merci pour ta réponse

    J'ai quelques questions :
    - est-ce que toutes les fonctions que j'utilisent ont un équivalent sous OpenGL3 (je pense aux objets qui ne sont pas des triangles, et à la 2D ; mon usage d'OpenGL est assez différent des besoins liés à l'animation ou aux jeux vidéo) ?
    - dois-je mettre à jour ma DLL OpenTK et/ou utiliser autre chose pour travailler avec OpenGL3 sous .NET ?
    - est-ce possible, pour faciliter la "migration" et la mise au point, d'utiliser dans le même projet OpenGL3 tout en conservant l'ancien code OpenGL1 (quitte à faire deux fenêtres séparées) ?

    A bientôt

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 225
    Points : 10 168
    Points
    10 168
    Par défaut
    Citation Envoyé par electroremy Voir le message
    - est-ce que toutes les fonctions que j'utilisent ont un équivalent sous OpenGL3 (je pense aux objets qui ne sont pas des triangles, et à la 2D ; mon usage d'OpenGL est assez différent des besoins liés à l'animation ou aux jeux vidéo) ?
    Je n'ai pas trop compris parce que faire des objet ou de la 2D , ça se fait dans du JV , mais bon OpenGL3 possède plus de chose que OpenGL1 , et sans vouloir d’offenser , le jeux vidéo ou l'animation utilisera des fonctions avancé ,comparé à toi qui semble vraiment faire une utilisation très basique de la lib.

    Citation Envoyé par electroremy Voir le message
    - dois-je mettre à jour ma DLL OpenTK et/ou utiliser autre chose pour travailler avec OpenGL3 sous .NET ?
    Jamais utilisé OpenTK/.Net, mais normalement pas besoin de changer.


    Citation Envoyé par electroremy Voir le message
    Merci pour ta réponse
    - est-ce possible, pour faciliter la "migration" et la mise au point, d'utiliser dans le même projet OpenGL3 tout en conservant l'ancien code OpenGL1 (quitte à faire deux fenêtres séparées) ?
    Les deux codes peuvent fonctionner ensemble (conseiller de faire de façon séparé ) ,c'est sur OpenGL ES où les fonction OpenGL1 n'existe plus.

    ah bien sur GLU ne doit plus être utilisé.
    (et on peut s'en passer sur OpenGL 1 aussi même pour de la 3D)

  5. #5
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 936
    Points : 1 288
    Points
    1 288
    Par défaut
    et sans vouloir d’offenser , le jeux vidéo ou l'animation utilisera des fonctions avancé ,comparé à toi qui semble vraiment faire une utilisation très basique de la lib.
    Oui tout à fait tu as raison :-)

    Le besoin est plus simple... et il est même parfois antagoniste.
    Dans un jeu ou une animation, on souhaite avoir la plus belle image le plus efficacement possible, y compris en "trichant" mais en faisant en sorte que les défauts ne soient pas remarqués par l'œil du joueur ou du spectateur.

    En revanche, en CAO / FAO on veut quelque chose de fidèle, pas au sens esthétique mais géométrique ; et s'il y a des défauts (typiquement des triangles mal raccordés, par exemple dans une pièce 3D qui n'est pas "étanche" alors qu'elle le devrait) on veut qu'ils soient bien visibles, pour vérifier si une pièce est bien ou mal modélisée.

    Voici quelques copies d'écran, ce sera plus parlant.

    Les pièces sont usinées ou imprimées dans la même matière, donc la vraie pièce a une couleur uniforme ; mais dans mon programme je "colorise" certaines parties de la pièce pour bien les différencier et identifier plus facilement les difficultés d'usinage et/ou les erreurs de modélisation. Certaines formes "auxiliaires" sont dessinées en plus comme des parcours d'outils, des axes de perçage, des hauteurs... le but étant de vérifier que certaines choses "invisibles" sur la pièce finale sont bien présentes et au bon endroit.

    Voici la fenêtre de visu avec une vue 2D correspondant à une image BMP lue et convertie en vectoriel, avant et après lissage :

    Nom : 01_Visu2D_BMP.jpg
Affichages : 92
Taille : 112,5 Ko

    Nom : 02_Visu2D_Poly.jpg
Affichages : 103
Taille : 113,0 Ko

    Voici la fenêtre de visu avec une vue 2D à gauche et une vue 3D à droite, on voit la pièce "en fausse couleurs" avec les perçages dessinés sous forme de cercle en 2D, et les axes de perçage sur la vue 3D. On navigue dans chaque vue de façon indépendante.

    Nom : 03_Visu2D_3D_DetectionPercages.jpg
Affichages : 101
Taille : 273,4 Ko

    Voici la fenêtre de visu avec uniquement la vue 3D

    Nom : 04_Visu_3D.jpg
Affichages : 94
Taille : 255,7 Ko

    Voici la fenêtre de visu avec une vue 2D à gauche et une vue 3D à droite pour la saisie de la position des brides, qui se fait à la souris uniquement sur la vue 2D. On peut naviguer dans la vue 2D et 3D indépendament. Quand une bride est déplacée sur la vue 2D, on la voit bouger en même temps sur la vue 3D. Les hachures sur la vue 2D correspondent à la direction du sens du fil du bois. On utilise un peu de transparence avec des rectangles au dessus des brides qui représente une hauteur de fixation

    Nom : 05_Visu2D_3D_PositionBrides.jpg
Affichages : 99
Taille : 351,4 Ko

    Voici la fenêtre de visu avec une vue 2D à gauche et une vue 3D à droite pour la visualisation des phases d'usinage. Le jaune (en 2D, et en transparence sur la vue 3D) représente la surface à usiner, les traits en vert sur la vue 2D représentent les parcours d'outils ; la zone noire est la zone effectivement usinée.

    Nom : 06_Visu2D_3D_PhaseUsinage.jpg
Affichages : 107
Taille : 526,1 Ko

    Voici la fenêtre de visu avec deux vue 2D à gauche (vue de dessus et vue en coupe) et une vue 3D à droite pour la visualisation de la simulation d'usinage. Les 3 vues permettent de bien visualiser un parcours de la fraise (polyline fermée). On navigue dans la vue 3D de façon indépendante, mais les deux vues 2D sont liées car elles partagent l'axe X (si je bouge une des vues 2D, le mouvement de l'axe X est fait dans l'autre vue)

    Nom : 07_Visu2D_2D_3D_SimulationUsinage.jpg
Affichages : 93
Taille : 397,5 Ko

    Voici la fenêtre de visu avec uniquement la vue 3D d'une pièce en "vraie 3D" (et pas seulement en 2.5D) :

    Nom : 08_Visu_3D_STL.jpg
Affichages : 94
Taille : 146,4 Ko

    Voici la fenêtre de visu avec uniquement la vue 3D d'une pièce en "vraie 3D" en mode "debug", c'est à dire avec la face externe de chaque triangle en vert et la face interne en rouge (j'ai zoomé pour "rentrer" dans une pièce et voir l'intérieur) :

    Nom : 09_Visu_3D_STL_Debug.jpg
Affichages : 94
Taille : 117,9 Ko

    Pour résumer c'est moche mais "parlant" du point de vue mécanique.

    Aurais-tu un tutoriel particulier à me recommander sur Open GL3 (en français ou en anglais) ?

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 225
    Points : 10 168
    Points
    10 168
    Par défaut
    Jolie projet en tout cas

    sur DVP , il y'a un tutoriel là dessus :
    https://opengl.developpez.com/tutori...engl-tutorial/

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 375
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 375
    Points : 20 435
    Points
    20 435
    Par défaut
    Citation Envoyé par electroremy Voir le message
    Vous me conseillez quoi ?
    Comme Kannagi je n'arrive pas trop bien à saisir le problème.
    Si le projet consiste à afficher des lignes, des listes de triangles bref des objets 3d éclairés et affichés en 3d avec les transformations classiques bref ce que fait Open GL pas besoin je pense d'avoir recours à des API plus perfectionnées.
    Le plus important c'est que le projet soit vraiment fonctionnel c'est pas comme pour un projet de jeu où contrairement à un outil de CAO, dans un jeu le rendu final à l'écran ça compte beaucoup.
    Par contre ça semble être un beau projet

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 126
    Points : 33 033
    Points
    33 033
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par electroremy Voir le message
    s'il y a des défauts (typiquement des triangles mal raccordés, par exemple dans une pièce 3D qui n'est pas "étanche" alors qu'elle le devrait) on veut qu'ils soient bien visibles, pour vérifier si une pièce est bien ou mal modélisée.
    Tu sais, dans un jeu, si un model a un problème, on va pas les corriger avec un algo mais le renvoyer à l'artiste.

  9. #9
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 936
    Points : 1 288
    Points
    1 288
    Par défaut
    Merci pour vos réponses

    Dans un premier temps je vais essayer de faire de l'OpenGL 3 avec ma lib OpenTK actuelle ; la lib est plus récente que la date de sortie d'OpenGL3, et je retrouve dans l'objet GL d'OpenTK les fonctions liées aux shaders donc à priori c'est bon.

    En effet, j'en avais un peu bavé pour intégrer OpenTK et avoir une fenêtre avec plusieurs zones d'affichage OpenGL indépendantes, tout en gérant la souris et le clavier de façon cohérente, et sans avoir des affichages redondants à cause d'évènements multiples
    Du coup si j'y parvient de cette façon je n'aurais pas à remettre en cause mon IHM ça sera plus simple.

    Sinon, je passerais à une version plus récente d'OpenTK, il devrait y avoir un nombre de changements limité.

    Il faudra y passer un certain temps car il y a une rupture entre OpenGL1 et OpenGL3.
    Je commencerais par la visu 3D "vraie 3D", c'est là où j'ai le plus de triangles et en même temps où le code est le plus simple (juste une liste de triangles, pas d'édition)
    Ca permettra d'évaluer le gain en vitesse

    Mon projet est une sorte de petit Open Scad maison, avec des fonctions un peu particulières correspondant exactement à ce que j'ai besoin de faire.
    A l'origine il servait à faire de l'usinage 2.5D à partir d'une image quelquonque.
    Puis je l'ai amélioré avec une partie génération vectorielle directe en plus de l'image.
    Lorsque j'ai acquis une imprimante 3D, j'ai ajouté un export en STL pour imprimer en 3D ces pièces 2.5D, puis, créé un petit module de fonctions à part pour faire mes pièces en "vraie 3D".

    Dernièrement, je me suis amusé à faire des lithophanies.
    Le principe d'une lithophanie c'est de fabriquer une pièce fine avec une épaisseur variable en fonction du niveau de gris d'une image, pour obtenir des logos ou des photos "lumineuses"
    Je peux visualiser le résultat en 3D normale ou avec les couleurs d'origine.
    Ca génère un grand nombre de triangle... d'où me besoin de faire quelque chose de plus rapide que OpenGL1

    Voici quelques copies d'écran et photo :

    L'image de départ, mon image de profil (en basse résolution, exprès pour bien voir les triangles) :

    Nom : 01_ImageDepart.jpg
Affichages : 116
Taille : 99,9 Ko

    Le résultat après traitement :

    Nom : 02_Litho.jpg
Affichages : 81
Taille : 140,6 Ko

    La pièce avec l'image en "haute résolution" :

    Nom : 07_Litho3D.jpg
Affichages : 90
Taille : 128,0 Ko

    Nom : 08_Litho3D.jpg
Affichages : 89
Taille : 110,8 Ko

    Une photo de l'impression 3D en ABS blanc :

    Nom : 09_Impression.JPG
Affichages : 88
Taille : 232,9 Ko

    Voilà ce que ça donne avec un éclairage arrière, par transparence :

    Nom : 12_Resultat.JPG
Affichages : 82
Taille : 282,8 Ko

    Nom : 13_Resultat.JPG
Affichages : 83
Taille : 272,5 Ko

    On voit que c'est mieux avec la gravure côté visible et l'éclairage côté lisse, donc j'aurais du imprimer la pièce à l'endroit et pas en miroir.

    On peut aussi faire une lithophanie cylindrique, voici une petite lampe de chevet imprimée en 3D selon ce principe, les filetages et taraudages ont été imprimés en 3D, les seules pièces mécaniques non imprimées en 3D sont 3 vis M6 pour fixer le support des rubans à led dans le socle :

    Nom : DSC08622.JPG
Affichages : 94
Taille : 391,0 Ko

    Nom : DSC08651.JPG
Affichages : 90
Taille : 383,9 Ko

    Nom : DSC08661.JPG
Affichages : 117
Taille : 317,5 Ko

    A bientôt

  10. #10
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 936
    Points : 1 288
    Points
    1 288
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Tu sais, dans un jeu, si un model a un problème, on va pas les corriger avec un algo mais le renvoyer à l'artiste.
    En fait, l'artiste, c'est moi
    C'est moi, en tant qu'utilisateur du module "vraie 3D" du logiciel, qui peut générer une mauvaise pièce :

    J'ai à ma disposition un lot de fonctions qui permettent de créer des triangles correspondant à des surfaces dans l'espace 3D :
    - un filetage ou taraudage
    - un disque
    - un polygone
    - une "forme 2D" plate qui est une forêt de polygones externes et internes (trous)
    - une extrusion verticale d'une forme 2D plate (des "murs")
    - une extrusion coniques d'une forme 2D
    - une extrusion sphérique
    - ...

    Certaines fonctions permettent de créer des "formes 2D" :
    - à partir de textes
    - à partir d'une image vectorielle bicolore
    - à partir d'opérations booléennes entre formes 2D
    - à partir d'offset négatif ou positif entre formes 2D

    Donc c'est à moi en tant qu'utilisateur de faire en sorte que la pièce finale soit correcte (fermée, étanche, sans recouvrement, ect...)

    Par exemple si je veux un cylindre, je dois créer un disque pour la base, un pour le sommet, et une extrusion verticale de la base, le tout aux bonnes dimensions et position.
    En cas d'erreur, je me retrouve avec un cylindre incomplet, ouvert ou avec une fente.

    Ce module "vraie 3D" est en fait un pseudo-langage de programmation, je tape du code qui génère une pièce 3D, comme Open Scad

    La visualisation intégrée m'aide, en tant qu'utilisateur, à vérifier que la pièce que j'ai générée est correcte

    En revanche, le mode "2.5D" est plus proche d'un logiciel "normal" ; il permet, par principe, de générer des pièces 3D "correctes" sur le plan géométriques, cependant le choix des paramètres d'usinage peut aboutir à la production d'une mauvaise pièce (cas typique : outils de trop gros diamètre ne permettant pas d'usiner toutes les formes)

    A bientôt

Discussions similaires

  1. utiliser un callback C++ natif avec du code .NET (en C#)
    Par nicolasflasque dans le forum C++/CLI
    Réponses: 3
    Dernier message: 28/11/2008, 11h58
  2. xp_cmdshell utilisation avec net use
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/01/2007, 16h22
  3. Dessiner des objets plus complexes avec OpenGL
    Par Premium dans le forum OpenGL
    Réponses: 18
    Dernier message: 21/11/2006, 17h55
  4. [VB.NET]Utilisation de la molette souris avec un Panel
    Par Mayamok dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/09/2006, 15h38

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