我正在制作一个使用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()语句不应该让我错误...
任何人都可以帮助我解决这个问题。感谢一个好的回应...
注意:相机已经附加了,相机没问题..
答案 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"));