Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema Mdx

Iniciado por Hastur, 18 de Septiembre de 2005, 08:34:58 PM

« anterior - próximo »

Hastur

 Buenas!
Estoy empezando con MDX y desde el principio me esta dando problemas, sigo los tutoriales de Coding4fun de Microsoft e incluso intento compilar las samples que vienen con el SDK (el de Agosto'05) y en todos los casos me sale el mismo error, al compilar/ejecutar dice que hay un BadImageFormatException en el metodo Main, donde se supone se crean los componentes:

       static int Main()
       {
           System.Windows.Forms.Application.EnableVisualStyles();
           using(Framework sampleFramework = new Framework()) <---- Error aqui
           {
           ...


Sabeis a que puede ser?
Copio aqui la excepcion completa:

System.BadImageFormatException was unhandled
 Message=" no es una aplicación Win32 válida. (Exception from HRESULT: 0x800700C1)"
 Source="mscorlib"
 StackTrace:
      at System.Reflection.Assembly._nGetEntryPoint()

      at System.Reflection.Assembly.get_EntryPoint()

      at Microsoft.VisualStudio.HostingProcess.HostProc.GetEntryPointAptThreadState(String assemblyFile)

      at Microsoft.VisualStudio.HostingProcess.HostProc.RunParkingWindowThread()

      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

      at System.Threading.ThreadHelper.ThreadStart()



Por si sirve de algo (que nunca se sabe) uso Windows XP x64 con la ultima Beta del VC# y la .NET de 64 bits.

Haddd

 Ni idea. La verdad es que no he probado a compilar nunca los samples...

Hastur

 Bueno, gracias igualmente :D

De todas formas, no podria alguien poner aqui algun codigo de ejemplo (unicamente inicializar la ventana) que funcione para ver si es cosa del .NET64 o de mi pc o de la fase lunar?

Gracias desde ya :D

chechocossa

 A este tutorial lo hice hace un tiempo y funciona perfectamente. Es el código dentro de un winform.
Compilado con C# Express Beta 2 y el último SDK de MDX
Pero no es el XP de 64

El link al tuto

Link al Tutorial


using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace dxtest01
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class cView : System.Windows.Forms.Form
{
 /// <summary>
 /// Required designer variable.
 /// </summary>
 private System.ComponentModel.Container components = null;

 // Added a Direct3D device context
 private Device device = null;


 public cView()
 {
  //
  // Required for Windows Form Designer support
  //
  InitializeComponent();

  //
  // TODO: Add any constructor code after InitializeComponent call
  //

  // Changed Form Style to do all updates in the Paint function
  this.SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true );

 }

 /// <summary>
 /// Clean up any resources being used.
 /// </summary>
 protected override void Dispose( bool disposing )
 {
  if( disposing )
  {
   if (components != null)
   {
    components.Dispose();
   }
  }
  base.Dispose( disposing );
 }


 /// <summary>
 /// We will initialize our Direct3d graphics device here
 /// </summary>
 public void InitializeGraphics()
 {
  // Set our presentation parameters
  PresentParameters presentParams = new PresentParameters();

  presentParams.Windowed = true;
  presentParams.SwapEffect = SwapEffect.Flip;
  presentParams.AutoDepthStencilFormat = DepthFormat.D16;
  presentParams.EnableAutoDepthStencil = true;

  // Create our device
  device = new Microsoft.DirectX.Direct3D.Device(0, Microsoft.DirectX.Direct3D.DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
 }

 private void SetupCamera()
 {
  device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1.0f, 1000.00f);
  device.Transform.View = Matrix.LookAtLH(
   new Vector3(0.0f ,4.0f, 0.0f),
   new Vector3(0.0f,-4.0f, 0.0f),
   new Vector3(0,1,0));
 }



 // Render the Direct3D graphics
 public void Render()
 {
  // Clear the Direct3d device and get ready to paint a frame
  device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.CornflowerBlue, 1.0f, 0);

  //  Now set up the view Frustum.  This code will eventually move into another location, but for now we'll do it here
  SetupCamera();

  //Now call Direct3D and let it do its math
  device.BeginScene();
  // This is where the vector rendering gets done.
  device.EndScene();

  // Show the contents of the Direct3D device
  device.Present();

 }



 #region Windows Form Designer generated code
 /// <summary>
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 /// </summary>
 private void InitializeComponent()
 {
  //
  // cView
  //
  this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
  this.ClientSize = new System.Drawing.Size(292, 266);
  this.Name = "cView";
  this.Text = "cView";

 }
 #endregion

 /// <summary>
 /// The main entry point for the application.
 /// </summary>
 [STAThread]
 static void Main()
 {
  using (cView dxView = new cView())
  {
   // Initialize Direct3D and show the Form
   dxView.InitializeGraphics();
   dxView.Show();

   // As long as there is a cView, run this loop

   while (dxView.Created)
   {
    dxView.Render();
    Application.DoEvents();
   }

   dxView.Dispose();
  }
 }
}
}


Suerte!
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina

Hastur

 Muchas gracias por el codigo, pero sigue fallandome :/ Al final he decidido volver al Windows XP "normal", el 64 da demasiados problemas con practicamente todos los otros programas que necesito, o bien directamente no deja instalarlos por no ser compatibles con la nueva arquitectura, o petan por que si, o vayaustéasaber.

En fin, que gracias por todo y continuo bajando drivers y cosillas, luego probare de nuevo con el MDX y ya contare como ha ido :)

@ruantec-Man

Hola!

he encontrado el problema y se como solucionarlo.

si utilizas el vista abre la linea de comando(o DOS) pero asegurate de que habras el programa como Administrador. entonces busca/scribe lo siguiente:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe setwow

reciviras un mensaje de que todo salio bien y despues de ahi todo debe de funcionar sin problemas.

Salu2

@ruantec-Man






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.