马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本例程中生成两个16位正整数变量,用来模拟实际应用中需要生产二维码的数据。本例中显示2个正整数变量共10位数,实际应用中可根据需要定义二维码字符串的长度。 新建一个VS触摸屏的空工程,添加一个画面,在画面中添加对应的控件。如下图
画面各控件含义为 1)数值显示1:16位正整数,对应地址为LW0。 2)数值显示2:16位正整数,对应地址为LW1。 3)“随机码”位开关:地址LB0; 4)“二维码字符串”ASCII显示:地址LW1000,总字数11; 5)二维码显示器:监视地址LW1000,字符长度11; 各控件属性如下图所示。
单击“随机码”位开关触发宏程序RandomCode,程序如下: #include "MacroInit.h" void Macro_main(IN *p) { MarcoInit //ToDo LocalWord[0]=RAND();//生成随机数LW0; LocalWord[1]=RAND();//生成随机数LW1; }
循环宏程序QR_Code将两个随机数生产二维码字符串,程序如下: #include "MacroInit.h" void Macro_main(IN *p) { MarcoInit //ToDo char source[10]; source[0]=LocalWord[0]/10000; //将LW0分解,第5位数值 source[1]=(LocalWord[0]/1000)%10; //将LW0分解,第4位数值 source[2]=(LocalWord[0]/100)%10; //将LW0分解,第3位数值 source[3]=(LocalWord[0]/10)%10; //将LW0分解,第2位数值 source[4]=(LocalWord[0]/1)%10; //将LW0分解,第1位数值 source[5]=LocalWord[1]/10000; //将LW1分解,第5位数值 source[6]=(LocalWord[1]/1000)%10; //将LW1分解,第5位数值 source[7]=(LocalWord[1]/100)%10; //将LW1分解,第5位数值 source[8]=(LocalWord[1]/10)%10; //将LW1分解,第5位数值 source[9]=(LocalWord[1]/1)%10; //将LW1分解,第5位数值 char res[11]; int i=0; for(i=0;i<10;i++) { res=source+48; //将0~9的数值转换成ASCII码字符 } res[10]=0;//字符串以/0结束 memcpy((char*)&LocalWord[1000],res,11);//将字符串赋给LW1000二维码地址 }
注意,虽然二维码显示的字符串只显示10位数,但是实际字符串变量长度为11位,因为字符串最后1位为‘/0’。 离线模拟,点击“随机码”按钮,生产随机码并显示结果,如下图。 用手机微信扫一下二维码,得到如下图结果。 |