流程
1、写好的c/c++代码。
2、将写好的c/c++代码整个共享入LINUX系统下。
(Oracle VM VirtualBox共享固定目录。
mount(挂载命令)
mount -t vboxsf share(挂载文件夹) /mnt/share/
)
3、在LINUX系统下通过gcc编译为arm的运行包。
(进入makefile文件目录。
make clean(清除编译文件)
make Makefile(编译)
)
4、将运行包烧录入EPOS机中运行。
MAIN函数
Main()
{
void ExtractDir(char *p_caFilePath //文件路径
,char *p_caDir //取得的目录
)
//取得运行目录,不包括最后一个"/"
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[1] 。
在main函数中设置路径及QT字体以后
QWSServer::setCursorVisible(false); //让EditText不出现光标
使用
MainWnd mainwnd;
调用MainWnd的构造函数。
class MainWnd : public QWidget
{
Q_OBJECT
public:
MainWnd(QWidget *parent = 0);
~MainWnd();
void createTextWnd(); //创建文本窗口
void createMenuWnd(); //创建菜单窗口
void showWnd();
void addMenuItem(const char *p_caTitle, int p_iWidth=-1, int p_iHeight=-1); //创建菜单
void addText(int p_iUseRows, Qt::Alignment alignment, const char *p_caFormat, ...);
void setTitle(const char *p_caTitle);
void setText(int p_iTextIdx, const char *p_caFormat, ...);
void setHelp(const char *p_caFormat, ...);
void setT9Help(const char *p_caBuffer);
void clearWnd(int p_iFlag); //
int getPages();
int getCurPageIdx();
void ctrlWndTimeout(int p_iSecond);
void PageUp();
void PageDown();
void Display();
void HideLabel();
int PrepareText(const char *pcaStr,int ibeginRow=0,int ibeginCol=0);
void setProgress(int p_iProgress);
int getProgress();
CmdBase* getBase();
TWNDTYPE getWndType();
void setemit();
char caBuff[32];
QList<CmdBase *>c_lstDynMenu; //动态交易菜单列表
QProgressBar *c_pProgressBar; //进度条处理
QQueue<QString> c_qusMessage;
public slots:
void onMenuClick(int p_iIdx);
void onNewCmd(CmdBase *p_obj);
void startApp();
void OnShowWndTime(int p_iSecond);
void OnHideWndTime(int p_iSecond);
void onClickReturn();
void onShowSn();
void onUpdateMenu();
void onTradeTest();//联机交易自检
void onFactorReset();//恢复出厂设置
void onClearMenu();//清除菜单
void onUpdateKey();//跟新密钥
void onTestNet();//网络检测
void onDeviceManage();//终端管理
void onShowKey(char cKey);//显示快捷操作时的键值
private:
TWNDTYPE c_stWnd; //当前窗口模式, 1:普通文本模式, 2:菜单模式
int c_iPages; //总的页数
int c_iCurPageIdx; //当前页号
bool c_blLines; //是否生成了当前界面的文本行对象
QLabel *c_labBG; //背景
QLabel *c_labTitle; //标题栏
QLabel *c_labHelp; //帮助提示文本
QLabel *c_labWndTimeout; //界面超时
QLabel *c_labLines[TEXT_LINES]; //文本行显示对象
CmdBase *c_cmdBase; //操作码指令处理类指针
WndTimeout *c_WndTimeout; //界面超时线程
QList<TText *>c_lstText; //文本对象,存放具体的文本
QList<char *>c_lstLines; //文本行对象
QList<Qt::Alignment>c_lstAlignment; //文本行对齐方式
QList<QCustButton *>c_lstMenuItems; //菜单窗口的按钮控件集
QSignalMapper *c_menuMapper; //菜单事件Mapper
char c_caTradeCode[10];
int c_pciSize[4];
int c_iPage;
int c_iCurPage;
int c_iTotal;
bool c_bFirst;
int c_mouseX;
int c_idot;
int c_iLeftBorder;
int c_iColWidth;
int c_iTopBorder;
int c_iRowWidth;
bool eventFilter(QObject *obj, QEvent *event); //事件过滤器
void getLines(); //生成文本行对象
/*
char c_pcaSrc_app_name[100];
char c_pcaDst_app_name[100];
char c_pcaTradeCode[10];
char c_pcaTradeCash[20];
char c_pcaTrade[10];
char c_caCmd[128];
char c_chValue;
*/
signals:
void menuSelect(int p_iIdx); //菜单选择信号
void newCmd(CmdBase *p_obj); //新操作码命令信号
void KeyPress(int p_iKey); //按键事件
//void slotKey(int num); //数字按键事件
void typesingle();
};
#endif //__MAINWND_H__
}
“`