visual studio2022使用时发生TCHAR*的实参与char*形参不符

问题遇到的现象和发生背景

visual studio2022使用时发生TCHAR的实参与char形参不符

代码如下
#include
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    TCHAR sCommandLine[100];
    BOOL ret;
    DWORD dwExitCode;
    PROCESS_INFORMATION pi;
    STARTUPINFO si = { sizeof(si) };
    GetWindowsDirectory(sCommandLine, MAX_PATH);
    strcat(sCommandLine,"\\NotePad.exe");
    ret = CreateProcess(NULL, sCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    if (ret)
    {
        CloseHandle(pi.hThread);
        WaitForSingleObject(pi.hProcess, INFINITE);
        GetExitCodeProcess(pi.hProcess, &dwExitCode);
        CloseHandle(pi.hProcess);
    }
    return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

根据网上的博客,修改了软件的默认字符集

img

但并没有解决问题

img

我想要达到的结果

怎样才能解决问题使正常运行呢?

那个形参不符的问题你看的是没错的,这个已经解决了。
后面的是其他的问题,有三个选择

  1. 一个是在工程属性里的 C/C++ -> 预处理器 -> 预处理器定义里添加 _CRT_SECURE_NO_WARNINGS
  2. 或者 在cpp文件的最开始加上一行:
    #define _CRT_SECURE_NO_WARNINGS
    
  3. 又或者修改第10行为:
    strcat_s(sCommandLine, 100, "\\NotePad.exe");
    

按方法3修改第十行为strcat_s(sCommandLine, 100, "\NotePad.exe");
结果行不通(悲伤)

img

使用方法2在cpp文件的最开始加上一行:#define _CRT_SECURE_NO_WARNINGS
结果也不行

img


使用方法1在工程属性里的 C/C++ -> 预处理器 -> 预处理器定义里添加 _CRT_SECURE_NO_WARNINGS也行不通

img

(大哭)