代码之家  ›  专栏  ›  技术社区  ›  Tommaso Giubilei

“const char*”类型的参数与“LPCWSTR”类型的参数不兼容

  •  0
  • Tommaso Giubilei  · 技术社区  · 7 年前

    我有一个很大的问题。。。我今天早上开始在Windows上编程。但我不明白为什么它给了我这个问题,因为我在图坦卡蒙上随便抄了一下。( https://youtu.be/8GCvZs55mEM?t=5m20s )(当出现错误时,我放置了启动视频的链接)

    我唯一注意到的是,在tut中,它使用了一个LPCSTR变量进行测试,但我的编辑器(Visual Studio代码)发出了一个LPCWSTR变量的信号。

    对不起,英语不好。

    #include <windows.h>
    
    using namespace std;
    
    int WINAPI WinMain (HINSTANCE hInts, HINSTANCE hPrevInst, LPSTR args, int ncmdshow)
    {
    
    MessageBox(NULL, "Ciao!", "La prima GUI", MB_OK, );
    
    return 0;
    }
    

    我如何解决?

    在评论中:

    现在错误不会出现,非常感谢。但有一个问题。。。编辑器未生成应用程序。控制台提供:

    Executing task: g++ -g main.cpp -o Program <  
    main.cpp: In function 'int WinMain(void *, void *, char *, int)':
    main.coo:8: pasing '__wchar_t *' as argument 2 of 'MessageBox(void *, const char *, const char *, UINT)'
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   john    7 年前

    显然不是一个好的教程。像这样做

    MessageBox(NULL, L"Ciao!", L"La prima GUI", MB_OK);
    

    使用 L 更改字符串文字,使其使用宽字符。可以将宽字符串文字转换为类型 LPCWSTR ,普通字符串文本不能。