不同于VS系列,VScode我找到没有快速的解决办法,只能一点一点来


问题:

wnd.lpszClassName = "WindowClass";

不能将 "const char *" 类型的值分配到 "LPCWSTR" 类型的实体

"const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容

解决办法:

头文件增加#include <tchar.h>

在报错的行,把字符串改成_T("字符串")的格式

例如

#include <tchar.h>wnd.lpszClassName = "WindowClass";//问题的代码
wnd.lpszClassName = _T("WindowClass");//修改后

案例:

1.有问题的代码

#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{if (message == WM_DESTROY)PostQuitMessage(0);else if (message == WM_QUIT)DestroyWindow(hwnd);return DefWindowProc(hwnd, message, wParam, lParam);
}BOOL RegisterWindow(HINSTANCE hInstance)
{WNDCLASSEX wnd;wnd.hbrBackground = (HBRUSH)COLOR_WINDOW;wnd.lpfnWndProc = WndProc;wnd.style = CS_HREDRAW | CS_VREDRAW;wnd.lpszClassName = "WindowClass";wnd.hInstance = hInstance;wnd.hIcon = LoadIcon(hInstance, IDI_APPLICATION);wnd.hIconSm = LoadIcon(hInstance, IDI_APPLICATION);wnd.hCursor = LoadCursor(hInstance, IDC_ARROW);wnd.cbSize = sizeof(WNDCLASSEX);wnd.lpszMenuName = nullptr;wnd.cbClsExtra = 0;wnd.cbWndExtra = 0;return RegisterClassEx(&wnd);
}
BOOL DisplayWindow(HWND &hwnd, HINSTANCE hInstance, HMENU hMenu, int nCmdShow)
{hwnd = CreateWindow("WindowClass", "TweeChaice", WS_OVERLAPPEDWINDOW, 0, 0, 800, 800,nullptr, nullptr, hInstance, nullptr);ShowWindow(hwnd, nCmdShow);return hwnd ? TRUE : FALSE;
}HWND hwnd;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{if (!RegisterWindow(hInstance)){MessageBox(nullptr, "Error register!", "Error", MB_ICONERROR | MB_OK);return -1;}if (!DisplayWindow(hwnd, hInstance, nullptr, nCmdShow)){MessageBox(nullptr, "Error creating window!", "Error", MB_ICONERROR | MB_OK);return -1;}MSG msg;while (GetMessage(&msg, 0, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

2.已解决问题的代码

#include <windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{if (message == WM_DESTROY)PostQuitMessage(0);else if (message == WM_QUIT)DestroyWindow(hwnd);return DefWindowProc(hwnd, message, wParam, lParam);
}BOOL RegisterWindow(HINSTANCE hInstance)
{WNDCLASSEX wnd;wnd.hbrBackground = (HBRUSH)COLOR_WINDOW;wnd.lpfnWndProc = WndProc;wnd.style = CS_HREDRAW | CS_VREDRAW;wnd.lpszClassName = _T("WindowClass");wnd.hInstance = hInstance;wnd.hIcon = LoadIcon(hInstance, IDI_APPLICATION);wnd.hIconSm = LoadIcon(hInstance, IDI_APPLICATION);wnd.hCursor = LoadCursor(hInstance, IDC_ARROW);wnd.cbSize = sizeof(WNDCLASSEX);wnd.lpszMenuName = nullptr;wnd.cbClsExtra = 0;wnd.cbWndExtra = 0;return RegisterClassEx(&wnd);
}
BOOL DisplayWindow(HWND &hwnd, HINSTANCE hInstance, HMENU hMenu, int nCmdShow)
{hwnd = CreateWindow(_T("WindowClass"), _T("TweeChaice"), WS_OVERLAPPEDWINDOW, 0, 0, 800, 800,nullptr, nullptr, hInstance, nullptr);ShowWindow(hwnd, nCmdShow);return hwnd ? TRUE : FALSE;
}HWND hwnd;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{if (!RegisterWindow(hInstance)){MessageBox(nullptr, _T("Error register!"), _T("Error"), MB_ICONERROR | MB_OK);return -1;}if (!DisplayWindow(hwnd, hInstance, nullptr, nCmdShow)){MessageBox(nullptr, _T("Error creating window!"), _T("Error"), MB_ICONERROR | MB_OK);return -1;}MSG msg;while (GetMessage(&msg, 0, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

以上是作者的解决问题的代码,作者也是一知半解的菜鸡,有更好的办法请告知

“const char *“ 类型的实参与 “LPCWSTR“ 类型的形参不兼容,VScode相关推荐

  1. IntelliSense: const char * 类型的实参与 LPCWSTR 类型的形参不兼容

    1.  在Windows程序设计中遇到错误: (1)IntelliSense:  "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼 ...

  2. VSCode C/C++提示“LPCSTR 类型的实参与LPCWSTR类型的形参不兼容“

    VSCode C/C++提示"LPCSTR 类型的实参与LPCWSTR类型的形参不兼容" 问题产生原因 VSCode中的C/C++插件会对当前代码进行错误检测,并以波浪线或其它形式 ...

  3. 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?

    今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么 ...

  4. char 类型与lpcwstr_在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?...

    今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么 ...

  5. C++ char*类型的实参与 LPCWSTR类型的形参不兼容

    都是Unicode字符集编码惹的祸,旧的教材上往往都使用多字符段编码 1.使用TCHAR 代替char 2.使用swprintf_s代替sprintf_s 3.使用TEXT函数或者是_L修饰const ...

  6. word类型得实参和lpwstr类型的形参不兼容_前端测试题:(解析)关于JavaScript的数据类型,下面说法错误的是?...

    考核内容: js 数据类型 题发散度: ★★ 试题难度: ★★ 解题思路: 在ES5的时候,我们认知的数据类型确实是 6种: Number.String.Boolean.undefined.objec ...

  7. const char*类型的实参与LPCTSTR类型的形参不兼容 MFC

    "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 http://blog.sina.com.cn/s/blog_6ccd0a11 ...

  8. error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [2]' to 'LPCWSTR'

    VS2005设置UNICODE或ASCII字符集问题 VS2005开发程序时,默认的字符集是Unicode.所以如果程序中使用字符常量一定要显示转换为Unicode型,否则编译时报错. 如果你不希望程 ...

  9. const char* 不能初始化LPCWSTR类型

    创建WINDOWS 窗口时会用到LPCWSTR类型. 不能够直接用string类型初始化: LPCWSTR lParam = "lParam"; 解决方法:利用TEXT宏.TEXT ...

最新文章

  1. 玩转python轻松过二级_关于通话的阿里云论坛用户知识和技术交流
  2. 无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages)
  3. 练习一:数学计算 有四个数字,分别是1,2,3,4,请问可以组成多少个相互不重复的数字,各是多少...
  4. Lambda架构与推荐在电商网站实践
  5. This 在 C# 中的含义
  6. 物联网时代,对产品经理有哪些新的要求?
  7. Asp.net MVC 学习之路-003(增删改查,后端手工,前端生成)
  8. 人工智能过于发达可能将后患无穷
  9. python怎么创建虚拟环境_anaconda怎么创建python虚拟环境
  10. Dollar Dayz POJ - 3181
  11. vue3源码中的最长递增子序列
  12. html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...
  13. GridView里的一点小功能:截取多余字符、改变鼠标经过行的样式
  14. fetch的基本用法
  15. 文本编码与解码问题解决方案
  16. Apache 跟踪用户会话
  17. Wilcoxon秩和检验简介与MATLAB实现
  18. 爬虫入门到精通-headers的详细讲解(模拟登录知乎)
  19. VS C++ 控制台----暂停的方法
  20. CentOS 6.7编写Shell脚本实现简单跳板机功能

热门文章

  1. oracle with ora 00911,函数报ORA-00911错误
  2. 协众信息你知道什么是室内设计师吗?
  3. linux2022正式课程开班-预科001
  4. -7的补码用计算机,补码计算器-计算机求补码
  5. SQL SERVER访问Access数据库,出现错误:无法初始化链接服务器 (null) 的 OLE DB 访问接口 Microsoft.Jet.OLEDB.4.0 的数据源对象...
  6. spring-security详解
  7. 普乐蛙VR太空宇宙vr星际飞船设备模拟太空飞船
  8. 必须掌握的20个Excel技巧,让你的工作效率提升十倍
  9. Git创建远程分支步骤
  10. 【多重共线性_影响识别】