Se que voy perdido y ahí mis grandes dudas acerca de MFC, y por eso necesito ayuda urgente, ya q por mucho q lo intente y sin que nadie me ilumine o me ponga por el buen camino me puedo pasar decadas hasta encontrar la solución. 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??
He escrito abajo el código de pricipal y el de draw para una mayor aclaración. Necesito ayuda muy urgente.
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);
}



