Hola:
Más bien intenta compilar.
1>------ Operación Compilar iniciada: proyecto: MFC_Arduino, configuración: Debug Win32 ------
1>SerialClass.cpp
1>c:\users\usuario\documents\visual studio 2017\projects\mfc_arduino\mfc_arduino\serialclass.cpp(140): fatal error C1010: final de archivo inesperado al buscar la directiva de encabezado precompilado. Compruebe si olvidó agregar '#include "stdafx.h"' al código fuente?
1>Compilación del proyecto "MFC_Arduino.vcxproj" terminada -- ERROR.
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
Lo tenía en Inglés, ya lo puse en español, dice lo mismo pero lo pongo por si acaso.
Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error C1010 final de archivo inesperado al buscar la directiva de encabezado precompilado. Compruebe si olvidó agregar '#include "stdafx.h"' al código fuente? MFC_Arduino c:\users\usuario\documents\visual studio 2017\projects\mfc_arduino\mfc_arduino\serialclass.cpp 140
Desde que quite el archivo SerrialClass.cpp, si me compila y ejecuta el programa base, pero como es normal, no hace nada. Haciend pruebas sin poner ahora ni variables ni nada, solo con quitar el serialClass.cpp y ponerlo ahí es cuando sabes que algo no anda bien y te nombra el stdafx.h como si ese fuera el problema.
Edito:Abrí el archivo SerialClass.cpp y puse el encabezado #include "stdafx.h".
Le di compilar y me salió por fin y por primera vez esta ventana que tanto esperaba.
Me dije a mi mismo que porfiiiiiiiiiiiinnnnnnnnnnnnn.
Al pulsar el botón sea ON o OFF, ninguno funciona, no transmite nada al puerto serie.
¿Por qué?
Código completo del archivo principal llamado MFC_ArduinoDlg.cpp:
// MFC_ArduinoDlg.cpp: archivo de implementación
//
#include "stdafx.h"
#include "MFC_Arduino.h"
#include "MFC_ArduinoDlg.h"
#include "afxdialogex.h"
#include "SerialClass.h"
#include <iostream>
#include <fstream>
#include <Windows.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cuadro de diálogo de CMFC_ArduinoDlg
// Puerto serie.
Serial* Puerto = new Serial("COM1");
// Comandos para Arduino.
char Luz_ON[] = "Luz_ON"; // Envía "Luz_ON" al puerto serie.
char Luz_OFF[] = "Luz_OFF";
char lectura[50] = "\0"; // Guardan datos de entrada del puerto.
CMFC_ArduinoDlg::CMFC_ArduinoDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_MFC_ARDUINO_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFC_ArduinoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMFC_ArduinoDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON2, &CMFC_ArduinoDlg::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON1, &CMFC_ArduinoDlg::OnBnClickedButton1)
END_MESSAGE_MAP()
// Controladores de mensaje de CMFC_ArduinoDlg
BOOL CMFC_ArduinoDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// Establecer el icono para este cuadro de diálogo. El marco de trabajo realiza esta operación
// automáticamente cuando la ventana principal de la aplicación no es un cuadro de diálogo
SetIcon(m_hIcon, TRUE); // Establecer icono grande
SetIcon(m_hIcon, FALSE); // Establecer icono pequeño
// TODO: agregar aquí inicialización adicional
return TRUE; // Devuelve TRUE a menos que establezca el foco en un control
}
// Si agrega un botón Minimizar al cuadro de diálogo, necesitará el siguiente código
// para dibujar el icono. Para aplicaciones MFC que utilicen el modelo de documentos y vistas,
// esta operación la realiza automáticamente el marco de trabajo.
void CMFC_ArduinoDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // Contexto de dispositivo para dibujo
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Centrar icono en el rectángulo de cliente
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Dibujar el icono
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
// El sistema llama a esta función para obtener el cursor que se muestra mientras el usuario arrastra
// la ventana minimizada.
HCURSOR CMFC_ArduinoDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CMFC_ArduinoDlg::OnBnClickedButton2()
{
// TODO: Agregue aquí su código de controlador de notificación de control.
// Encener luz.
Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1); // Envía al puerto el texto "Luz_ON".
}
void CMFC_ArduinoDlg::OnBnClickedButton1()
{
// TODO: Agregue aquí su código de controlador de notificación de control.
Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1);
}
Saludos.