• Domingo 19 de Mayo de 2024, 01:57

Autor Tema:  Error Con Mfc  (Leído 2185 veces)

alfusfer

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Error Con Mfc
« en: Miércoles 31 de Marzo de 2004, 10:05 »
0
Hola a todos, os explico mi problema:

He creado un workspace con dos proyectos: uno es "MFC App Wizard(exe)" cuyo nombre es "draw" y el otro "Win 32 console Application" que su nombre es "principal".
Mi intención es llamar a "draw" desde "principal". En principal, elijo un número del 1 al 11. Miro en unas variables globales que coordenadas corresponden a este número, las guardo en otras variables globales y entonces llamo a OnDraw(pDC). Como se trata de variable globales, mi intención es que dentro de OnDraw al llamar a pDC->Ellipse(x1,y1,x2,y2), me dibujara un círculo con los datos que hay en estas variables.
Cada uno de los proyectos los puedo compilar por separado sin dar errores, pero cuando intento ejecutar "principal.exe"  da este error: 0 x C0000005: Acces Violation. Supongo que el problema estará en la llamada a la función OnDraw(),
COmo puedo llamar a la función OnDraw() desde otro proyecto?? si es que se puede hacer.

He escrito abajo el código de pricipal y el de draw para una mayor aclaración.
Espero que alguién me ilumine.
Un saludo




      ****************** CÓDIGO DE PRINCIPAL ***************************


#include <iostream.h>
#include "stdafx.h"
#include "draw.h"
#include "drawDoc.h"
#include "drawView.h"



               //////////////////////////////
               //   INITIALS COORDENATES   //
               //////////////////////////////

int Coord_x1 [ ] = {450, 300, 200, 350, 550, 700, 800, 650, 475, 625, 550};
int Coord_y1 [ ] = { 50, 150, 350, 450, 500, 450, 275, 100, 300, 300, 400};
int Coord_x2 [ ] = {750, 600, 500, 650, 850,1000,1125, 950, 675, 825, 750};
int Coord_y2 [ ] = {350, 450, 650, 750, 800, 750, 600, 400, 500, 500, 600};


int x1,y1,x2,y2;

CDrawView *drawer;
CDC *pDC;

/////////////////////////////////////////////////
//                SUBSCRIBE                    //  
/////////////////////////////////////////////////

void main () {

      
   int num;
   cout << "Number of Antenna: " << endl;
   cin >> num;

   
   x1= Coord_x1[num-1];
   y1= Coord_y1[num-1];
   x2= Coord_x2[num-1];
   y2= Coord_y2[num-1];
   
   drawer ->OnDraw(pDC);
   
}










         ****************** CODIGO DE drawView.cpp ***********************


int x1,y1,x2,y2;

void CDrawView::OnDraw(CDC* pDC) {
   
   CDrawDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   
   /////////////////////////////////////////////////////
   //               wRITE TEXT                        //
   /////////////////////////////////////////////////////
   
   char text [] = "Cover zone for mobile telephony ";
   pDC ->SetTextColor(RGB(0,0,0));
   pDC ->TextOut(25,25,text,strlen (text));


   //////////////////////////////////////////////////////
   //             DRAW POLYGON                         //
   //////////////////////////////////////////////////////

   CPen * draw_poly;
   CPen Pen (PS_SOLID, 3, RGB (0,0,0));
       POINT points [7] = {600, 50, 350, 250, 250, 550, 550, 750, 950, 650, 1100, 350, 600, 50};
   draw_poly = pDC ->SelectObject(&Pen);
   pDC ->Polyline (points,7);
   pDC ->SelectObject (Pen);

   //////////////////////////////////////////////////////
   //              DRAW CIRCLES                        //
   //////////////////////////////////////////////////////

   CPen * draw_circles;
   CPen Pen2 (PS_SOLID, 1, RGB (0,0,0));
   
   CBrush * antiguoRelleno;
   CBrush Relleno (RGB (0,0,255));
   
   draw_circles = pDC ->SelectObject(&Pen2);
   antiguoRelleno = pDC ->SelectObject (&Relleno);
   
   pDC->Ellipse(x1,y1,x2,y2);
     
   pDC ->SelectObject (Pen2);        

}

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Error Con Mfc
« Respuesta #1 en: Jueves 1 de Abril de 2004, 22:49 »
0
Amigo...

No te ofendas pero estas muy mal.

Tu codigo "principal" llama a una clase que nisiquiera esta bien instanciada e nicializada...

seguramente pensaste que basta con decrarar una variable de la misma clase que hace la magia del pintado para llamarla desde OTRA APLICACION!. Eso no basta.

Claro que se puede establecer comunicacion entre dos aplicaciones, pero esa no es la forma.

alfusfer

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Error Con Mfc
« Respuesta #2 en: Viernes 2 de Abril de 2004, 12:13 »
0
Ya se que estoy muy mal, es la primera vez que utilizo MFC y no tengo ni idea.  Como se podría hacer, me podrías hechar una mano?? Es bastante urgente

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Error Con Mfc
« Respuesta #3 en: Sábado 3 de Abril de 2004, 01:27 »
0
Creo que me fui de boca...  me olvidé que alguna vez yo tambien necesité de ayuda. disculpa....

Te enviaré pronto la forma en que puedes comunicar dos aplicaciones y enviar mensajes entre ellas en Visual C++.

alfusfer

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Error Con Mfc
« Respuesta #4 en: Lunes 5 de Abril de 2004, 12:09 »
0
muchas gracias, espero tu ayuda impaciente

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Error Con Mfc
« Respuesta #5 en: Viernes 16 de Abril de 2004, 18:00 »
0
Este programa que implementé en una tarde te muestra como enviar mensajes de una aplicacion a otra...

espero que te sirva...

puedes encontrar mas ejemplos en Visual C++ visitando

Programacion.uni.cc
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

alfusfer

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Error Con Mfc
« Respuesta #6 en: Sábado 17 de Abril de 2004, 10:27 »
0
gracias, me has sido de gran ayuda