VS2017调整VS2010_VS2017项目改为VS2010

时间:2023-09-27 08:47

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://www.mareenoire.info/qq_33473476/article/details/80471999

FFmpegInterop

https://www.mareenoire.info/microsoft/FFmpegInterop

类型转化

float a;

CString str;

str.Format(".2f", a);

MFC下遇到的字符集和中文乱码问题

https://www.mareenoire.info/jdksummer/articles/2338102.html

WIN API 串口

https://www.mareenoire.info/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

// parity 为 char = 'N'

进制转换

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.mareenoire.info/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

ret[i/2] = (char) ((hexCharToInt(www.mareenoire.info(i)) << 4)

| hexCharToInt(www.mareenoire.info(i+1)));

}

return ret;

}

string bytestohexstring(char* bytes,int bytelength)

{

string str("");

string str2("0123456789abcdef");

for (int i=0;i

int b;

b = 0x0f&(bytes[i]>>4);

char s1 = www.mareenoire.info(b);

str.append(1,www.mareenoire.info(b));

b = 0x0f & bytes[i];

str.append(1,www.mareenoire.info(b));

char s2 = www.mareenoire.info(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",www.mareenoire.info());

system("pause");

}

1、官网下载VS2017后在线安装,安装完成后查看是否已经安装MFC程序。打开VS2017,“文件 -> 新建 ->项目->已安装->Visual C++”目录下是否有“MFC应用程序”,如果有则跳过第2步。

2、如果安装VS2017时未安装MFC应用程序,则在第一步打开的对话框左下角点击“打开Visual Studio安装程序”,选择单个组件,安装“SDK、库和框架”目录下的“用于 x86 和 x64 的 Visual C++ MFC”组件。

3、安装成功后,找到VS2010你的工程,右击用记事本打开VS2010工程类型为Microsoft Visual Studio Solution (.sln)的文件。

将前两行的: Microsoft Visual Studio Solution File, Format Version 11.00

Visual Studio 2010

替换为以下四行: Microsoft Visual Studio Solution File, Format Version 12.00

Visual Studio 15

VisualStudioVersion = 15.0.27703.2026 MinimumVisualStudioVersion = 10.0.40219.1

保存退出即可。

4、以上步骤完成后,双击刚才修改的.sln工程文件,打开该项目的“属性 -> 链接器 -> 命令行”属性页。

5、将 /SAFESEH:NO 拷贝到“其他选项”框中,然后点击应用。

/*********************************** 注:VS2017官方版本默认30天试用评估期,评估期到,需要登录自己的微软账号,可获得权限试用。或者安装时直接登录微软账号,点击右上角的账户设置,在弹窗对话框中更新授权许可证,即可以跳过30天评估期,直接使用。 /***********************************

打开项目后会发现,提示:“round”:不允许dllimport函数的定义,查看错误位置,发现提示位置如下:

static double round(double r) { return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5); }

后来上网查看发现,VS2010中的math里没有round。而VS2017中是存在的,所以打开时会出现重定义的现象,需要将此处定义删除(即将上述代码删除),同时也要将声明处的round删除: 注意删除时是有两处需要删除,math.h和corecrt_math.h。定义round的地方也可能不止一处,都要删除。

Copyright© 黑海资讯

鄂ICP备2023014923号