最近我发现在MSVS2022中”#pragma once“不知为何不起作用,仍然报错(#ifndef也一样)
(具体代码改了一下,放在底下)


而相同的文件在Dev C++中却可以通过编译

为什么呢?
不是拼写错误,因为在DevC++里可以编译
//主文件
#include<iostream>
using namespace std;
#include"messagebox.h"
#include"fun2.cpp"
#include"fun3.cpp"
int main() {
cout<<notice("JIDHIUHF");
cout<<"\n"<<fun2()<<"\n"<<fun3();
//if(a)return 1;
return 0;
}
//fun2.cpp
#pragma once
#include"messagebox.h"
int fun2()
{
return notice("???");
}
//fun3.cpp
#pragma once
#include"messagebox.h"
int fun3(){
return notice("!!!");
}
//messagebox.h
#pragma once
#include"messagebox.cpp"
int notice(const char []);
//messagebox.cpp
#pragma once
#include<windows.h>
int notice(const char a[] = NULL)
{
return MessageBox(NULL, LPCWSTR(a), TEXT("提示"), MB_YESNO);
}