因为要使用easyx插件,所以必须得用cpp文件写ui,但我用的是c的语法,并且项目要求只能用c,请问有什么方法强行使用cpp文件吗,或者有什么方法可以用c文件写easyx吗
你可以把C++的代码用C的接口封装一下,比如像下面这样
C++头文件: A.hpp
#pragma once
class A
{
public:
int doSomeWork();
};
C头文件: A.h
#ifdef __cplusplus
extern "C"
{
#endif
void *createA();
void destroyA(void *a);
void doSomeWork(void *a);
#ifdef __cplusplus
}
#endif
实现文件A.cpp
#include <iostream>
#include "A.hpp"
#include "A.h"
int A::doSomeWork()
{
std::cout << "job done" << std::endl;
return 0;
}
void *createA()
{
return new A;
}
void destroyA(void *a)
{
A *p = static_cast<A *>(a);
delete p;
}
int doSomeWork(void *a)
{
A *p = static_cast<A *>(a);
return p->doSomeWork();
}
然后你可以在C程序里使用A.h头文件里封装的接口调用C++的代码
写ui c也可以,调用函数这种,c和cpp都是可以混用的,但是同一个文件只能一种语言