VS2017项目改为VS20102021-06-03 17:16:18 将.sln的前四行改为 Microsoft Visual Studio Solution File, Format Version 11.00
Visual Studio 2010
VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1
Listbox Control 控件的简单使用
https://blog.csdn.net/qq_33473476/article/details/80471999
FFmpegInterop
https://github.com/microsoft/FFmpegInterop
类型转化
float a;
CString str;
str.Format(".2f", a);
MFC下遇到的字符集和中文乱码问题
https://www.cnblogs.com/jdksummer/articles/2338102.html
WIN API 串口
https://blog.csdn.net/u011334105/article/details/23836055
DCB结构的主要参数说明如下:
·DCBLength: 一字节为单位指定的DCB结构的大小。
·Baudrate: 用于指定串口设备通信的数据传输速率,它可以是实际的数据传输速率数值,也可以是下列数据之一:CBR_110, CBR_19200, CBR_300, CBR_38400, CBR_600, CBR_56000, CBR_1200, CBR_57600, CBR_2400, CBR_115200, CBR_4800, CBR_12800, CBR_9600, CBR_25600, CBR_14400。
·fBinary: 指定是否允许二进制。Win32API不支持非二进制传输,因此这个参数必须设置为TRUE,如果设置为FALSE则不能正常工作。
·fParity: 指定是否允许奇偶校验,如果这个参数设置为TRUE,则执行奇偶校验并报告错误信息。
·fOutxCtsFlow: 指定CTS是否用于检测发送流控制。当该成员为TRUE,而CTS为OFF时,发送将被挂起,直到CTS置ON。
·fOutxDsrFlow: 指定DSR是否用于检测发送流控制,当该成员为TRUE,而DSR为OFF时,发送将被挂起,直到DSR置ON。
·fDtrControl: 指定DTR流量控制,可以是表1中的任一值。
- Windows 9x/NT/2000使用GetCommState()函数获取串口的当前配置,使用SetCommState()重新分配串口资源的各个参数。
baud=1200 parity=N data=8 stop=1
进制转换
1、%d表示按整型数据的实际长度输出数据。
2、%c用来输出一个字符。
3、%s用来输出一个字符串。
4、%x表示以十六进制数形式输出整数。
Memset
memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。
void *memset(void *s, int c, size_t n);
s指向要填充的内存块。
c是要被设置的值。
n是要被设置该值的字符数。
返回类型是一个指向存储区s的指针。
memcpy
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
void *memcpy(void *dest, const void *src, size_t n);
#CStringList
http://www.cppblog.com/Mumoo/archive/2013/04/15/199460.aspx
AddTail 在列表的尾部添加一个元素(或者是另一个列表中的所有元素),即产生一个新的尾部
CString转char *
char* CStringToCharArray(CString str)
{
char *ptr;
#ifdef _UNICODE
LONG len;
len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
ptr = new char [len+1];
memset(ptr,0,len + 1);
WideCharToMultiByte(CP_ACP, 0, str, -1, ptr, len + 1, NULL, NULL);
#else
ptr = new char [str.GetAllocLength()+1];
sprintf(ptr,_T("%s"),str);
#endif
return ptr;
}
C++ char转十六进制
int hexCharToInt(char c)
{
if (c >= '0' && c <= '9') return (c - '0');
if (c >= 'A' && c <= 'F') return (c - 'A' + 10);
if (c >= 'a' && c <= 'f') return (c - 'a' + 10);
return 0;
}
char* hexstringToBytes(string s)
{
int sz = s.length();
char *ret = new char[sz/2];
for (int i=0 ; i <sz ; i+=2) {
ret[i/2] = (char) ((hexCharToInt(s.at(i)) << 4)
| hexCharToInt(s.at(i+1)));
}
return ret;
}
string bytestohexstring(char* bytes,int bytelength)
{
string str("");
string str2("0123456789abcdef");
for (int i=0;i<bytelength;i++) {
int b;
b = 0x0f&(bytes[i]>>4);
char s1 = str2.at(b);
str.append(1,str2.at(b));
b = 0x0f & bytes[i];
str.append(1,str2.at(b));
char s2 = str2.at(b);
}
return str;
}
int main()
{
char s[3] ={'a','b','c'};
std::string result;
result = bytestohexstring(s,strlen(s));
for(int i=0;i<3;i++)
{
printf("%02x", s[i]&0xFF);
}
printf("\n%s\n",result.data());
system("pause");
}
|