некоторые проблемы с функцией MFC AfxMessageBox () - PullRequest
0 голосов
/ 29 мая 2011

Я делаю программу для загрузки изображения с камеры, используя 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 & 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 \ мой проект \ objectbounddetect \ objectbounddetect \ objectbounddetectdlg.cpp 126 1 ObjectBoundDetect

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

В соответствии с определением .. Инструкция AfxMessageBox () не должна вызывать у меня ошибку ...

Любой может помочь мне с этой проблемой. Выдача хорошего ответа, спасибо.

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

Ответы [ 3 ]

6 голосов
/ 29 мая 2011

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

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

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

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

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

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

1 голос
/ 22 сентября 2016

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

AfxMessageBox(_T("YOUR MESSAGE"));
1 голос
/ 23 февраля 2015
AfxMessageBox( L"Camera have no connection",MB_OK|MB_ICONSTOP);

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...