专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
【分享】自己用VC做的一个面向对像代码架构自动生成器!
2020-02-20 20:19
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
11505
49
49
本帖最后由 FSL_TICS_ZJJ 于 2014-9-11 16:06 编辑
鉴于很多同学目前用WIN7、WIN8,打不开源码,我说一下原理,其实非常简单,就是先做个模板,然后在模板里进行字符串查找然后替换
这个纯粹是给大家玩的,呵呵,有段时间玩RTT,用C语言做面向对像,模拟C++中的类,那时候人懒,呵呵,因为对像的架构都差不多,但是每次都要拷贝、修改对像的名称呀、变量啊、函数啊之类的,觉得挺麻烦,就自己弄这个东西玩,还真别说,效率提高了很多,用键盘都省很多,
现在发出来给大家玩玩,纯属娱乐!
ClassWiz.rar
(12.24 KB, 下载次数: 68)
2014-8-31 23:15 上传 点击文件名下载附件
还有源码,VC6的,可惜我现在装的win7 32位系统,都打不开了,呵呵
ClassWizard.rar
(5.1 MB, 下载次数: 66)
2014-8-31 23:23 上传 点击文件名下载附件
简单做个教程:
classwizardtest.jpg
(65.94 KB, 下载次数: 0)
下载附件
2014-9-1 20:46 上传
确定后生成的.C文件:
/****************************************************************
FileName : CRoom.c
Direction:
Founder : Admin
Modify :
201491 Admin First version
****************************************************************/
#include "CRoom.h"
//Private variables declare
typedef struct _Private Private;
struct _Private
{
int Desk; //
int Cup; //
};
//Function in here
/**********************************************************
Function : CloseDoor
Direction:
Parameter: CCRoom* me;
Return : void
Founder : Admin
Modify :
201491 Admin First version
**********************************************************/
static void CloseDoor(CCRoom* me)
{
Private* PrivateData = (Private*)me->PrivateData;
//Code in here
}
/**********************************************************
Function : OpenDoor
Direction:
Parameter: CCRoom* me;
Return : void
Founder : Admin
Modify :
201491 Admin First version
**********************************************************/
static void OpenDoor(CCRoom* me)
{
Private* PrivateData = (Private*)me->PrivateData;
//Code in here
}
/**********************************************************
Function : CloseWindows
Direction:
Parameter: CCRoom* me;
int Index; //
Return : void
Founder : Admin
Modify :
201491 Admin First version
**********************************************************/
static void CloseWindows(CCRoom* me
int Index)
{
Private* PrivateData = (Private*)me->PrivateData;
//Code in here
}
/**********************************************************
Function : OpenWindows
Direction:
Parameter: CCRoom* me;
int Index; //
Return : void
Founder : Admin
Modify :
201491 Admin First version
**********************************************************/
static void OpenWindows(CCRoom* me
int Index)
{
Private* PrivateData = (Private*)me->PrivateData;
//Code in here
}
/**********************************************************
Function : CRoom_Create
Direction: Constructor function
Parameter: rt_size_t Size //malloc Size
return : CCRoom *
Founder : Admin
Modify :
201491 Admin First version
**********************************************************/
CCRoom *CRoom_Create(rt_size_t Size)
{
//Object create
CCRoom *me = CFloor_Create(Size);
//Private variable initialize
me->PrivateData = rt_malloc(sizeof(Private));
((Private *)me->PrivateData)->Desk = ;
((Private *)me->PrivateData)->Cup = ;
//Member variables initialize
me->Windows = ;
me->Door = ;
//Member functions initialize
me->OpenWindows = OpenWindows;
me->CloseWindows = CloseWindows;
me->OpenDoor = OpenDoor;
me->CloseDoor = CloseDoor;
//Virtual function initialize
return me;
}
复制代码
生成的.h文件:
/****************************************************************
FileName : CRoom.h
Direction:
Founder : Admin
Modify :
201491 Admin First version
****************************************************************/
#ifndef __CROOM_H__
#define __CROOM_H__
#include "rtthread.h"
//CCRoom class
typedef struct _CCRoom CCRoom;
struct _CCRoom
{
//BaseClass
CFloor m_CFloor;
//Private Variables
void* PrivateData;
//Member Variables
int Windows; //
int Door; //
//Member Functions
void (*CloseDoor)(CCRoom* me);
void (*OpenDoor)(CCRoom* me);
void (*CloseWindows)(CCRoom* me,
int Index);
void (*OpenWindows)(CCRoom* me,
int Index);
};
//Constructor function
extern CCRoom *CRoom_Create(rt_size_t Size);
#endif
复制代码
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
fengyunyu
2020-02-21 15:13
LZ高手...
加载中...
查看其它49个回答
一周热门
更多
>
相关问题
手把手学会例程系列:i.MX<二>:图解i.mx53源码补丁+烧录(...
59 个回答
从零开始MQX开发之二 创建与调试MQX项目
24 个回答
7009: Trim value invalid, value is blank or zero是什么错误
0 个回答
怎么头像消失啊?
23 个回答
求推荐KINETIS评估板:必备USB HS,ETHERNET
5 个回答
相关文章
基于IMX6Q移植uboot2018-09——添加单板
0个评论
IMX6UL定时器按键消抖实验
0个评论
I.MX6U处理器LED灯点亮汇编程序代码编写
0个评论
在NXP I.MX6上做一个基于Opencv和OpenGL的打砖块游戏
0个评论
【RFID安全】浅谈卡片破解
0个评论
LM75a
0个评论
emwin字库制作及汉字显示
0个评论
STM32学习之I2C
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
NXP
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>