2016-10-03 13 views
0

こんにちは私は、この大部分を実行してUSBデバイスなどをチェックする、このMicrosoft Foundation Classesを持っています。問題は、特定のIntelliSenseが定義されていないためです。そのため、プログラムを実行するとほとんどのエラーが表示されます。ここで CFC上のMFC lntelliSenseで問題が発生しました

は、エラーリストです:

enter image description here

コード全体:

// MFCApplication2Dlg.cpp : implementation file 
// 

#include "stdafx.h" 
#include "MFCApplication2.h" 
#include "MFCApplication2Dlg.h" 
#include "afxdialogex.h" 
#include "afxwin.h" 
#include "CyAPI.h" 
#define UART_H 

#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 

bool IsConnect = false; 
// CAboutDlg dialog used for App About 

class CAboutDlg : public CDialogEx 
{ 
public: 
    CAboutDlg(); 

// Dialog Data 
    enum { IDD = IDD_ABOUTBOX }; 

    protected: 
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 

// Implementation 
protected: 
    DECLARE_MESSAGE_MAP() 
}; 

CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) 
{ 
} 

void CAboutDlg::DoDataExchange(CDataExchange* pDX) 
{ 
    CDialogEx::DoDataExchange(pDX); 
} 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) 
END_MESSAGE_MAP() 


// CMFCApplication2Dlg dialog 



CMFCApplication2Dlg::CMFCApplication2Dlg(CWnd* pParent /*=NULL*/) 
    : CDialogEx(CMFCApplication2Dlg::IDD, pParent) 
{ 
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 
} 

void CMFCApplication2Dlg::DoDataExchange(CDataExchange* pDX) 
{ 
    CDialogEx::DoDataExchange(pDX); 
} 

BEGIN_MESSAGE_MAP(CMFCApplication2Dlg, CDialogEx) 
    ON_WM_SYSCOMMAND() 
    ON_WM_PAINT() 
    ON_WM_QUERYDRAGICON() 
    ON_BN_CLICKED(IDC_BUTTON1, &CMFCApplication2Dlg::OnBnClickedButton1) 
    ON_BN_CLICKED(IDC_BUTTON3, &CMFCApplication2Dlg::OnBnClickedButton3) 
    ON_BN_CLICKED(IDC_BUTTON2, &CMFCApplication2Dlg::OnBnClickedButton2) 
END_MESSAGE_MAP() 


// CMFCApplication2Dlg message handlers 

BOOL CMFCApplication2Dlg::OnInitDialog() 
{ 
    CDialogEx::OnInitDialog(); 

    // Add "About..." menu item to system menu. 

    // IDM_ABOUTBOX must be in the system command range. 
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); 
    ASSERT(IDM_ABOUTBOX < 0xF000); 

    CMenu* pSysMenu = GetSystemMenu(FALSE); 
    if (pSysMenu != NULL) 
    { 
     BOOL bNameValid; 
     CString strAboutMenu; 
     bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); 
     ASSERT(bNameValid); 
     if (!strAboutMenu.IsEmpty()) 
     { 
      pSysMenu->AppendMenu(MF_SEPARATOR); 
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 
     } 
    } 

    // Set the icon for this dialog. The framework does this automatically 
    // when the application's main window is not a dialog 
    SetIcon(m_hIcon, TRUE);   // Set big icon 
    SetIcon(m_hIcon, FALSE);  // Set small icon 

    // TODO: Add extra initialization here 

    return TRUE; // return TRUE unless you set the focus to a control 
} 

void CMFCApplication2Dlg::OnSysCommand(UINT nID, LPARAM lParam) 
{ 
    if ((nID & 0xFFF0) == IDM_ABOUTBOX) 
    { 
     CAboutDlg dlgAbout; 
     dlgAbout.DoModal(); 
    } 
    else 
    { 
     CDialogEx::OnSysCommand(nID, lParam); 
    } 
} 

// If you add a minimize button to your dialog, you will need the code below 
// to draw the icon. For MFC applications using the document/view model, 
// this is automatically done for you by the framework. 

void CMFCApplication2Dlg::OnPaint() 
{ 
    if (IsIconic()) 
    { 
     CPaintDC dc(this); // device context for painting 

     SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); 

     // Center icon in client rectangle 
     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; 

     // Draw the icon 
     dc.DrawIcon(x, y, m_hIcon); 
    } 
    else 
    { 
     CDialogEx::OnPaint(); 
    } 
} 

// The system calls this function to obtain the cursor to display while the user drags 
// the minimized window. 
HCURSOR CMFCApplication2Dlg::OnQueryDragIcon() 
{ 
    return static_cast<HCURSOR>(m_hIcon); 
} 


bool CMFCApplication2Dlg::OnBnClickedButton1() 
{ 

    USBDevice->Open(0); 

    if (USBDevice->IsOpen() != TRUE) 
    { 
     AfxMessageBox(_T("Failed to Open Device")); 
     return false; 
    } 
    else 
    { 
     IsConnect = true; 
     return true; 
    } 
} 


void CMFCApplication2Dlg::OnBnClickedButton3() 
{ 
    USBDevice->Close(); 
    IsConnect = false; 
} 


void CMFCApplication2Dlg::OnBnClickedButton2() 
{ 
    char tmpUart[60]; 
    long OutPacketSize; 
    OutPacketSize = sizeof(sUart); 

    LPTSTR pBuffer; 
    CString sBuffer; 
    int i; 

    if (IsConnect == false) 
    { 
     AfxMessageBox(_T("USB Connect Fail")); 
     return; 
    } 

    CEdit*OutValue = (CEdit*)GetDlgItem(IDC_OUT_VALUE); 

    pBuffer = sBuffer.GetBuffer(60); 
    OutValue->GetWindowText(pBuffer, 60); 

    strcpy(tmpUart, pBuffer); 

    OutPacketSize = strlen(tmpUart); 

    for (i = 0; i<OutPacketSize; i++) sUart[i] = tmpUart[i]; 

    sUart[OutPacketSize + 1] = 0; 
    OutPacketSize = OutPacketSize + 1; 

    //Perform the BULK OUT 

    if (USBDevice->BulkOutEndPt) 
    { 
     USBDevice->BulkOutEndPt->XferData(sUart, OutPacketSize); 
    } 

} 

HELP:私はインポートする必要がありません特定のどのようなライブラリ

かincこれらの種類のエラーを修正するためのルード?私はMFCの新人です。私はまだこれをプログラムするための構造と方法をまだ理解していません。助けてください。

+0

_mfcapplication2dlg.cpp_の68行目が 'ON_BN_CLICKED(IDC_BUTTON3、&CMFCApplication2Dlg :: OnBnClickedButton3)'であることを確認し、質問を編集してクリアしてください。 –

+0

目次:Intellisenseはあなたの問題とは何の関係もありません。あなたの問題は、単にあなたのコードがコンパイルされないことです。 –

答えて

2

ON_BN_CLICKEDメッセージマップマクロは、署名が

afx_msg void memberFxn() 

、あなたOnBnClickedButton1戻りboolとメンバ関数ポインタを受け取ります。そのメンバ関数は、ON_BN_CLICKEDで使用する戻り値(void)を持っていてはなりません。

+0

@laurencekeithalbano:私はすでにこれを修正する方法を教えてくれました。違反メンバ関数の関数シグネチャを 'bool'を返さないように変更してください。 – IInspectable

+0

私がそれを変更しても、エラーは常にそこにあります。私はそれを 'bool'から' void'に変更し、 'return false'と' return true'コードを削除します。しかし、それでも動作しません。 –

+1

@laurencekeithalbano:* "動作しません" *はエラーの説明ではありません。コンパイルできない可能性がありますが、別のコンパイラ(またはリンカー)エラーで失敗します。しかし、それはこの質問が求めるものではありません。別の問題について助けが必要な場合は、新しい質問をしてください。 – IInspectable

関連する問題