Esta funcion muestra un dialogo para insertar una variable, tras introducir los datos y darle a aceptar, salta un error, poniendo puntos de interrupcion, creo que el error debe estar en las ultimas dos funciones ( pDoc->UpdateAllViews (NULL);
pDoc->SetModifiedFlag (true)
. Pero no se que puede pasar, el error que da es el siguiente:
Excepción no controlada en 0x775353dc en prueba7.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00100fd8.
void Cprueba7View::OnVariablesInsertarnueva()
{
CString nombre; // Nombre de la nueva variable por defecto
INT_PTR tam_vars = 0; // Tamaño del array de variables
nombre = NuevoNombre(TEXT("Var"),&NombresVars);
// Se obtiene un puntero de la clase view
Cprueba7Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// Constructor del diálogo características
CDlgCaracteristica dlg (this, true, &NombresVars);
// Establezco en el edit del diálogo el nombre por defecto
dlg.Variable.Nombre = nombre;
dlg.m_nombre.SetString (nombre);
if (dlg.DoModal () == IDOK)
{
// El usuario introdujo una variable nueva
// La inserto en el vector de variables
tam_vars = pDoc->Variables.Add (new CDatos (dlg.Variable.Tipo ,0 ,dlg.Variable.Escala,dlg.Variable.Nombre , NULL, NULL, dlg.Variable.Etiqueta , dlg.Variable.Labels , dlg.Variable.Ausente , dlg.Variable.Precision ));
pDoc->UpdateAllViews (NULL);
pDoc->SetModifiedFlag (true);
}
}
Espero que alguien me pueda ayudar,
Gracias