Visual Studio代码“对的未定义引用”`[email protected]'”

我试图用VisualStudio代码中的C++制作Windows桌面应用程序,并使用MINW作为编译器。
我在一个名为src的文件夹中有一个名为test.cpp的文件:

\ifndef UNICODE
#定义UNICODE
#恩迪夫
#包括<windows.h>
int wWinMain(HINSTANCE HINSTANCE、HINSTANCE hPrevInstance、PWSTR lpCmdLine、,
国际展览(nCmdShow){
常量wchar_t name[]=L“测试”;
WNDCLASS wc={};
//wc.lpfnWndProc=WindowProc;
wc.hInstance=hInstance;
wc.lpszClassName=名称;
注册类别(wc);
HWND HWND=CreateWindowEx(
0, 
名称
L“窗口”,
W_边界,
CW_使用默认值,
CW_使用默认值,
1200, 
720, 
0, 
0, 
hInstance,
0);
if(hWnd==NULL){
返回0;
}
显示窗口(hWnd、nCmdShow);
}

但是当我编译时,我得到了这个错误:

>正在执行的任务:g++-g test.cpp-o test.exe<
c:/mingw/bin/./lib/gcc/mingw32/6.3.0/../../../../../libmingw32.a(main.o):(.text.startup+0xa0):未定义对`[email protected]'
collect2.exe:错误:ld返回了1个退出状态
终端进程终止,退出代码为:1

我在.vscode文件夹中还有一个tasks.json和一个launch.json

tasks.json

“版本”:“2.0.0”,
“任务”:[
{
“标签”:“测试”,
“类型”:“外壳”,
“命令”:“g++”,
“选择”:{
“cwd”:“${workspaceFolder}/src”
},
“args”:[
“-g”、“test.cpp”、“-o”、“test.exe”
],
“集团”:{
“种类”:“建造”,
“isDefault”:正确
}
}
]

Launch.json

“版本”:“0.2.0”,
“配置”:[
{
“名称”:(Windows)启动“,
“类型”:“cppvsdbg”,
“请求”:“启动”,
“程序”:“${workspaceFolder}/src/test.exe”,
“args”:[],
“stopAtEntry”:false,
“cwd”:“${workspaceFolder}/src”,
“环境”:[],
“外部控制台”:正确,
“启动前任务”:“测试”
}
]

问题是,当我使用main函数构建一个文件时,它可以很好地编译,但是当使用wWinMain构建文件时,会发生错误,我不知道如何修复它。如果有人能帮我,我会非常感激的

我有类似的问题,手动保存文件并再次编译

发表评论