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);
}