c++说miss function header 是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++说miss function header 是啥意思相关的知识,希望对你有一定的参考价值。

我自己打了个程序,但有个错误,他说是miss function header,有谁知道这是什么错误啊,知道的告诉下,小弟在此先谢拉,急!急!!急!!!

1、丢失没有头文件说明。
C++程序的特点,就是需要一个.h文件来定义函数信息,然后在cpp文件内实现函数体内容。
如果函数只需要在cpp文件内使用,也可以直接在cpp文件内,声明和定义。
如果cpp内有函数的实现过程,但在使用前没有定义函数结构,就会出错。
如果是文本内上面定义函数的实现,下面调用,就不会出错。如果是文本内上面调用,下面定义函数体,则必须在使用前对函数结构进行声明。
2、例如:
(CTest是一个类,包含2个文件,Test.h,Test.cpp。TestA是cpp文件内的一个非成员函数。)
上面定义下面实现:

void TestA(int a);
 
void CTest::Load()

    Test(1);

 
void Test(int a)

   //

 
直接使用:
void Test(int a)

 
void CTest::Load()

Test(1);

参考技术A funtion是函数 heaher是头
也就是函数定义地方错了本回答被提问者采纳
参考技术B 函数声明和函数实现不一样
这两个要一样的
参考技术C 缺少函数声明 参考技术D 缺少函数声明
或者声明写错了

“cors header ‘access-control-allow-origin’ missing”拒绝请求,即使来源是允许的

【中文标题】“cors header ‘access-control-allow-origin’ missing”拒绝请求,即使来源是允许的【英文标题】:"cors header ‘access-control-allow-origin’ missing" denies request, even though origin is allowed 【发布时间】:2019-10-10 23:36:18 【问题描述】:

我想从我的 Angular 应用程序向我的服务器发送 POST 请求(用 spring-boot 编写)。请求被拒绝,并显示消息“cors header ‘access-control-allow-origin’ missing”。

我启用了我的 Angular 应用程序“http://localhost:4200”的来源,就像我为其他 RestControllers 所做的一样(哪个工作)。据我所知,唯一的区别是我在不工作的控制器中处理 POST 请求。

控制器

@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class Controller 

    @Autowired
    private ReqRepository reqRepository;

    @PostMapping("/reqs")
    public Req saveReq (@Valid @RequestBody Req req) 
        return reqRepository.save(req);
    

存储库

@Repository
public interface ReqRepository extends JpaRepository<Req, Long> 

角度服务

@Injectable()
export class ReqService 

  private httpOptions = 
    headers: new HttpHeaders(
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json'
    )
;

  constructor(private http: HttpClient) 

  sendReq(req: Req): Observable<Req> 
    return this.http.post<Req>('http://localhost:8080/reqs', req, this.httpOptions);
  

我认为允许来源就足够了,因此请求是可能的,但它被阻止了。似乎我缺少启用 POST 请求的东西。

更新

我进一步测试了控制器,它适用于 GET 请求。 我只是更改了方法,所以问题似乎在于 POST 请求。 下面是带有 GET 测试端点而不是 POST 端点的控制器

@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class Controller 

    @Autowired
    private ReqRepository reqRepository;

    @GetMapping("/reqs")
    public Page<Req> testCall (Pageable pageable) 
        System.out.println("Geeting request");
        return reqRepository.findAll(pageable);
    

【问题讨论】:

你允许本地主机但发送* ... 添加cors config即可解决Check this link @tricheriche 我将通配符 * 更改为“localhost:4200”,但它仍然不起作用 @lm1010 CrossOrigin 注释不应该工作吗?我认为所有配置都会为整个应用程序启用 cors,所以我不必在每个控制器中都这样做 @lm1010 在您提供的链接中创建一个 cors 配置会导致 Http 403 错误 【参考方案1】:

问题是我的 spring 安全配置。 我不得不禁用 csrf,因为它默认启用。 我从这篇文章中得到了解决方案:How to Solve 403 Error in Spring Boot Post Request

我的解决方案如下所示:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter 

    //Override basic security settings so no login page is needed to access the RestEndpoints
    @Override
    protected void configure(HttpSecurity security) throws Exception
    
        security.httpBasic().disable();
        security.csrf().disable();
    

【讨论】:

【参考方案2】:

很高兴您的请求现在有效。请注意'Access-Control-Allow-Origin': '*' 是从服务器发送的标头。在这里,您尝试将标头从 angular 发送到服务器,这将不起作用

另外请改@CrossOrigin(origins = "http://localhost:4200")

@CrossOrigin(origins = "http://localhost:4200", methods="GET,POST,PUT,DELETE,ORIGIN") 看看它是否有效

【讨论】:

嘿,遗憾的是请求不起作用。目前只有一个 GET 请求在工作,但我需要一个 POST 请求。但是每次我做一个 POST 请求时,我都会收到一个 cors 错误 @GhostMST,我已经更新了答案,请试一试告诉我。 我将 POST 指定为允许的请求方法,但我仍然收到相同的错误。 @CrossOrigin(origins = "http://localhost:4200", methods= RequestMethod.POST) 据我了解,如果我不指定 RequestMethods,则默认情况下允许所有方法。有趣的是,如果我使用像 @lm1010 linked aboce 这样的全局配置,我不会收到 cors 错误,而是 403 Access denied 错误。

以上是关于c++说miss function header 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

missing function header (old-style formal list?)

“cors header ‘access-control-allow-origin’ missing”拒绝请求,即使来源是允许的

在linux下安装keepalived的时候,报错configure:error:nftables header files missing,跪求大神解决方案

Flask 学习-92.使用 gunicorn 部署 flask 出现NoAuthorizationError: Missing JWT in headers or cookies问题

VUE---Missing space before function parentheses

java@ What are C++ features missing in Java