跳到主要内容

自动生成C/C++框架代码

生成模块框架代码

在IDE中保存库中的数据结构或者功能块和函数,IDE会自动生成C/C++框架代码。

用户可以任何时候手动执行代码生成,将鼠标点击页面右上角的生成接口代码按钮,为当前模块生成框架代码:

POU对应的源程序名

假设用户创建了以下的POU:

生成的C/CPP源程序列表如下:

C/C++源程序结构

生成的代码主要在以下两个子目录:

  • MODULES\C_CPP_LIB.MODULE\cpp
    • 头文件:即上述“wa_interface.h”,包含类型定义和函数原型声明。用户不应该修改该文件,且已设置为只读。
    • 源程序文件:wa_interface.cpp
  • MODULES\C_CPP_LIB\implements\cpp
    • 函数实现文件:即上述“wa_func.cpp”,所有函数类型的POU的实现都在这一个文件中。
    • 功能块实现文件:和函数不同,每个功能块将有自己独立的文件。

wa_interface.cpp

wa_interface.cpp中包含了C++实现的功能块的基础函数,这些函数都是WasomeCodeX编译器约定的ABI. 用户不需要修改此文件,即便修改在编译时将被自动生成的代码覆盖。

// This is an auto-generated file, and will be overwrite once interface updated

// DO NOT MODIFY THIS FILE!!!

#include ".MODULE/cpp/wa_interface.h"


/************* Function Block cppfb1 interface *************/

void *__init_cppfb1(cppfb1_Data *self) {
return new_FB_cppfb1((cppfb1_Data *)self);
}

void cppfb1(cppfb1_Data *self, void *instance) {
((cppfb1_Base *)(instance))->call(self);
}

// if return -1: error, the required size is stored in the buffer.
int cppfb1_save(void *instance, void *buffer, int size) {
return ((cppfb1_Base *)(instance))->save(buffer, size);
}

bool cppfb1_restore(void *instance, void *instance_data, int size) {
return ((cppfb1_Base *)(instance))->restore(instance_data, size);
}

/*********** End Function Block cppfb1 interface ***********/