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

C# Discussion :

[DirectX] [NOVICE] Où se cachent les assemblys ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut [DirectX] [NOVICE] Où se cachent les assemblys ?
    Bonjour à tous,

    J'ai un petit problème pour créer un exe utilisant Direct X Managé avec C# 2010.

    Mon erreur est la suivante :
    "L'assembly en mode mixte est créé avec la version 'v1.1.4322' du runtime et ne peut pas être chargé dans le runtime 4.0 sans d'autres informations de configuration."
    Je l'interprète de cette façon :
    Les références que j'ai fait manuellementvers Microsoft.DirectX Microsoft.DirectX.Direct3D sont incorrectes. Elles ne correspondent pas à .NET4
    Le problème c'est que ces assemblys n'apparaissent pas dans la fenêtre "Ajouter une Référence" donc je suis obligé d'aller les chercher manuellement (avec parcourir).
    J'ai ben sûr installer le dernier SDK DirectX (Juin 2010) et d'aprés ce que j'ai lu les assemblys devraient se trouver dans le dossier "Developer Runtime\x86\" mais elles n'y sont pas.
    Alors j'ai (bêtement ?) fait une reference ves les fichiers qui se trouvent dans le dossier "C:\Windows\Microsoft.NET\DirectX for Managed Code"... avec le résultat que l'on connait.

    J'ai donc plusieurs questions :
    • Est-ce que mon analyse est correcte ?
    • Est-ce que quelqu'un utilise DirectX sous .NET4 avec Visual C# 2010 ?
    • Savez-vous où je peux trouver les assemblys correctes ? (J'ai déjà demandé à mon ami google... et à Mr MSDN...)


    Voici mon code :
    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
    71
    72
    73
    74
    75
    76
     
    using System;
    using System.Linq;
    using System.Windows;
    using System.Windows.Forms;
    using System.Drawing;
     
    using Microsoft.DirectX;
    using Microsoft.DirectX.Direct3D;
     
     
    namespace Project1
    {
        class Go
        {
            static void Main()
            {
                UsingDirectX form = new UsingDirectX(); 
                if (form.InitializeDirect3D() == false) 
                {
                    MessageBox.Show("Could not initialize Direct3D.", "Error");
                    return;
                }
                form.Show(); 
                while (form.Created) 
                {
                    form.Render(); 
                    Application.DoEvents(); 
                }         
            }
        }
     
        class UsingDirectX:Form
        {
            Device DX_Device = null; // Drawing device
     
            public UsingDirectX()
            {
               this.ClientSize = new Size(256,256); 
               this.Text = "My First DirectX Program"; 
            }
     
            public bool InitializeDirect3D()
            {
                try
                {
                    PresentParameters pps = new PresentParameters();
                    pps.Windowed = true; 
                    pps.SwapEffect = SwapEffect.Discard; 
                    DX_Device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, pps); 
                    return true;
                }
                catch (DirectXException e)
                {
                    MessageBox.Show(e.ToString(), "Error"); 
                    return false;
                }
            }
     
            public void Render()
            {
                if (DX_Device == null) 
                {
                    return;
                }
     
                DX_Device.Clear(ClearFlags.Target, Color.White, 1.0f, 0);               
                DX_Device.BeginScene();
     
                // Rendering is done here
     
                DX_Device.EndScene();
                DX_Device.Present();
            }
        }
    }
    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut Pour Info
    Je viens de m'apercevoir que mon code fonctionne si je le compile pour le FrameWork .Net 3.5.

    Donc, la question reste la même : est-ce que qqun sait où l'on peut trouver les assemblys DirectX pour .Net 4 ?

    Merci

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut Windows "Happy" Code Pack
    Je crois que j'ai la solution à mon problème :

    En fait les assembly "Managed DirectX" pour .net4/DirectX 10 sont disponibles via un pack téléchargeable sur MSDN.

    Forum MSDN (question identique à la mienne):
    http://social.msdn.microsoft.com/For...d-c08cbfa6b2cb

    Download :
    http://code.msdn.microsoft.com/WindowsAPICodePack

    Je confirme avant de cloturer le Post.

Discussions similaires

  1. [Assemblys] Comment précompiler les Assemblys ?
    Par sorcer1 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 24/01/2007, 10h20
  2. [1.1] Comment signer les assemblies après compilation ?
    Par maitrebn dans le forum Framework .NET
    Réponses: 8
    Dernier message: 26/09/2006, 18h03
  3. Réponses: 1
    Dernier message: 20/09/2006, 14h49
  4. Réponses: 3
    Dernier message: 13/06/2006, 14h52
  5. TLibImp et les assembly .NET
    Par lpelou dans le forum Delphi
    Réponses: 1
    Dernier message: 07/06/2006, 19h01

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