天天看点

vs code配置c++

先安装C/C++ for Visual Studio Code插件

launch.json

{    
    "version": "0.2.0",    
    "configurations": [    
        {    
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示    
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg    
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)    
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径    
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可    
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false    
            "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录    
            "environment": [],    
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台    
            "MIMode": "gdb",    
            "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应    
            "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc    
            "setupCommands": [    
                {     
                    "description": "Enable pretty-printing for gdb",    
                    "text": "-enable-pretty-printing",    
                    "ignoreFailures": true    
                }    
            ]    
        }    
    ]    
}  
           

tasks.json

{  
    "version": "0.1.0",  
    "command": "g++",  
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"],    // 编译命令参数  
    "problemMatcher": {  
        "owner": "cpp",  
        "fileLocation": ["relative", "${workspaceRoot}"],  
        "pattern": {  
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",  
            "file": ,  
            "line": ,  
            "column": ,  
            "severity": ,  
            "message":   
        }  
    }  
}  
           

配置环境变量

C:\MinGW\bin

在把MinGW.rar解压到相应文件

#include <stdio.h>
#include <string>
#include <winsock2.h>

#pragma comment(lib, "ws2_32.lib")


int main(int argc, char* argv[])
{
  char a1[];
    char *a= a1;
    STARTUPINFO si;
    GetStartupInfo(&si);
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    //si.wShowWindow = SW_HIDE;
    si.wShowWindow = SW_SHOW;
    PROCESS_INFORMATION ProcessInformation;
    SOCKET sClient;
    WSADATA wsaData;
    sockaddr_in sin;

    GetSystemDirectory((LPTSTR)a1, sizeof(a1));
    strcat(a1,"\\cmd.exe");
    CreateProcess(NULL, (LPTSTR)a1, NULL, NULL, , , NULL, NULL, &si, &ProcessInformation);
    WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
    CloseHandle(ProcessInformation.hProcess);
    puts(a1);
    printf("\n");
    system("pause");
}