AfxMessageBox(TEXT("注意安全!"))   和AfxMessageBox("注意安全");
不理解啊,两者有什么不同么?求达人解释!以前用AfxMessageBox("注意安全");现在用的时候出了这个错误1>g:\users\bdk\documents\visual studio 2008\projects\tst\tst\tstdlg.cpp(156) : error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
1>        g:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(5372): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1>        g:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(5374): 或       “int AfxMessageBox(UINT,UINT,UINT)”
但是用AfxMessageBox(TEXT("注意安全!"))就没有问题,疑惑,求解。

解决方案 »

  1.   

    编码问题,TEXT是个宏。如果定义了UNICODE,_UNICODE,
    TEXT("...") 就是L".."
    否则就是".."
      

  2.   

    每一个API都对应了_A和_W两种方式调用。
      

  3.   

    根据你的工程是多子节还是Unicode
    TEXT可以将字符串进行匹配
      

  4.   

    up, 估计你定义了UNICODE,
    改成AfxMessageBox(L"注意安全");
    试试
      

  5.   

    TEXT宏将字串声明为双字节UNICODE模式。
    不过我觉得还是用_T()好点
      

  6.   

    习惯性用AfxMessageBox(_T"注意安全");
      

  7.   

    我喜欢用自定义的T()
    #define T(x) TEXT(#x)
    字符串就是T(字符串)
    省一个_两个"还是很不错的.
    但是括号内不能有逗号,引号,相连空格会变成一个,缺点也不少.
      

  8.   

    我用06VC编译一个代码,没有错误
    但是用10的,就会出现AfxMessageBox2个重载错误
    加上TEXT后,编译通过
    但不是很明白,TEXT的功能就是字符串匹配吗?