一、C++中format用法:
int a=1;
CString S;
S.format(“%d”,a); //错误用法,vc6不区分UNICODE格式,所以可以编译
S.format(_T(“%d”),a); //正确用法,原因vs2005以上版本支持UNICODE格式
ComName.Format(_T("\\\\.\\COM%d"),m_ComNo);
错误:我原来少了_T(“ ”)格式,直接在括号里面用” ”符号。
二、利用AfxMessageBox()显示整形变量
思路解析:AfxMessageBox(),括号里面是字符串格式,所以显示变化的字符串就行。
变化的字符串,可以用format(_T(”%d”),Val)格式,然后将Val变为变量就可以实现。比如Val可以获取编辑框的关联变量。
Cstring S;
S.format(_T(“This is a %d ”),Val);
AfxMessageBox(S);
三、如何将SerialPort5Dlg.cpp源文件的编辑框变量传入SCOM.cpp源文件的类变量中??
3.1多个源文件共用一个全局变量程序(整形全局变量int a):
首先在global.h申明一个变量extern int a;
接着在global.cpp定义全局变量int a = 10;
然后在其余源文件加入头文件#include”global.h”,然后直接调用全局变量a。
3.2结构体全局变量申明和定义
a.1结构体全局变量的申明在头文件global.h中
a.2结构体全局变量的定义在源文件global.h中
比如在global.h申明:
typedef struct{
UINT Val;
}GLOBAL;
extern GLOBAL global; //先在头文件申明extern,然后在源文件定义
//简单说,直接在定义的前面加一个extern就行
则应该在global.cpp定义:
GLOBAL global;
最后,只要在其它源文件.cpp中,加入#include”global.h” ,就可以调用全局变量global。