некоторая проблема с функцией AfxMessageBox () MFC

#c #mfc

#c #mfc

Вопрос:

Я создаю программу для загрузки изображения с камеры, используя Open.Cv ..

И я получаю ошибку в инструкции AfxMessageBox ()..

программа:

 BOOL CObjectBoundDetectDlg::OnInitDialog()

{ 
CDialogEx::OnInitDialog();

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

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX amp; 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);
    }
}

int nSelected = cvcamGetCamerasCount();
if(nSelected == 0)
{       
    AfxMessageBox("Camera have no connection",MB_OK|MB_ICONSTOP);
    return FALSE;
}
  

}

ошибка:

Ошибка 2 ошибка C2665: ‘AfxMessageBox’: ни одна из двух перегрузок не смогла преобразовать все типы аргументов c:program files microsoft visual studio 10.0 my projectobjectbounddetectobjectbounddetectobjectbounddetectdlg.cpp 126 1 ObjectBoundDetect

если я посмотрю на определение AfxMessageBox() … приведенное в этой [ссылке]](http://msdn.microsoft.com/en-us/library/as6se7cb (v = против80).aspx) … это должно сработать .. но я думаю, что какая-то проблема в списке параметров .. которую я не понимаю…

Согласно определению.. Оператор AfxMessageBox () не должен вызывать у меня ошибку…

Любой может помочь мне с этой проблемой.. Спасибо за хороший ответ..

Примечание: Камера уже подключена, .. проблем с камерой нет..

Ответ №1:

Две возможности:

Возможно, вам, хотя я сомневаюсь в этом, придется использовать ее глобально. Для этого попробуйте

 ::AfxMessageBox("Camera have no connection",MB_OK|MB_ICONSTOP);
  

Другая заключается в том, что use создается для Unicode и считает, что строка является многобайтовой. Для этого попробуйте

 AfxMessageBox( L"Camera have no connection",MB_OK|MB_ICONSTOP);
  

Я нахожусь за городом, на моем Mac, поэтому я не могу это протестировать. Но я застрял в офисе на выходных, поэтому решил предложить попробовать две вещи.

Ответ №2:

 AfxMessageBox( L"Camera have no connection",MB_OK|MB_ICONSTOP);
  

Приведенный выше код работал без каких-либо проблем. Если вы все еще хотите использовать:

 AfxMessageBox("Camera have no connection",MB_OK|MB_ICONSTOP);
  

Вы можете перейти в свойства проекта, на вкладке «Общие» вы можете изменить набор символов с «Использовать набор символов Unicode» на «Использовать многобайтовый набор символов»

Ответ №3:

Используйте, как показано ниже:

 AfxMessageBox(_T("YOUR MESSAGE"));