AfxMessageBox()MFC函数的一些问题

时间:2011-05-29 06:27:14

标签: 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 & 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':2个重载中没有一个可以转换所有参数类型c:\ program files \ microsoft visual studio 10.0 \ my project \ objectbounddetect \ objectbounddetect \ objectbounddetectdlg.cpp 126 1 ObjectBoundDetect

如果我看一下AfxMessageBox()的定义......在此提供 [链接]](http://msdn.microsoft.com/en-us/library/as6se7cb(v = vs.80).aspx)...它应该工作..但我认为参数列表中的一些问题..我不理解......

根据定义.. AfxMessageBox()语句不应该让我错误...

任何人都可以帮助我解决这个问题。感谢一个好的回应...

注意:相机已经附加了,相机没问题..

3 个答案:

答案 0 :(得分:6)

两种可能性:

尽管我怀疑这一点,但你可以将其范围扩大到全球范围。为此,请尝试

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

另一个是使用正在为unicode构建,它认为字符串是多字节的。为此,请尝试

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

我出城了,在我的Mac上,所以我无法测试。但是我周末一直被困在办公室,所以我想我会提供两件事要尝试。

答案 1 :(得分:1)

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

以上代码没有任何问题。如果您还想继续:

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

您可以转到项目属性,在常规选项卡中,您可以更改字符集,从#34;使用Unicode字符集&#34; to&#34;使用多字节字符集&#34;

答案 2 :(得分:1)

使用如下:

AfxMessageBox(_T("YOUR MESSAGE"));