自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (20)
  • 收藏
  • 关注

原创 OPC UA开源库Open62541源码编译及Client客户端Server服务器端测试[一]

pen62541 是一款开源的嵌入式系统开发手册,旨在帮助开发者快速掌握 Open62541 的开发技能。本文将从 Open62541 的概述、功能、开发环境、编程接口和应用案例五个方面进行介绍。

2024-01-19 11:11:37 3595 2

原创 OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换

OPC UA全称为“开放性生产控制和统一架构”。简单来说,它是一种用于不同设备和系统之间进行通信的技术规范。通过OPC UA,各种设备和系统可以互相交流和共享数据,实现更高效的工业自动化。

2024-01-16 15:56:15 4354 3

原创 C++上位软件通过Snap7开源库访问西门子S7-200/LOGO PLC/合信M226ES PLC V存储区的方法

在前面例程中谈到了C++ 通过Snap7开源库S7通信库跟西门子S7-1200PLC/S7-1500PLC以及合信CTMC M226ES PLC/CPU226 PLC通信的方式方法和应用例程。但是遗憾的是Snap7中根据官方资料显示只能访问PLC的 DB区、MB区、C区、T区 、I区、Q区,并没有提到有关如何访问S7-200/S7-200SMART/MT226ES/CPU226等200系列PLC的方式和方法。

2024-01-10 15:35:20 3356 2

原创 MFC Socket和合信CTMC M266ES 运动控制型PLC通信进行数据交换

MFC Socket和合信CTMC M266ES 运动控制型PLC通信进行数据交换。

2024-01-08 15:45:49 1429

原创 C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信

C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信。

2024-01-03 18:46:13 4738 1

原创 C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法

上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试,M226ES支持S7主站和从站协议。S7作为主站,S7-1200做为从站的通信也已经过测试。

2024-01-03 11:02:26 2525

原创 C++上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法

Snap7是一款用于通信的PLC库,是一种轻量级的现代PLC通信库。Snap7可在多个平台上使用,包括Windows PC,Linux,Raspberry Pi和其他和基于C++的平台。该库是完全开源的,采用了MIT协议进行发布。Snap7库是用C语言编写的,提供了对S7-200,S7-300和S7-400 PLC系列的广泛支持,还可以连接到CPU,CP和OP通信适配器。

2024-01-02 17:37:42 6920 6

原创 C++ Vector容器使用方法详解

C++ 标准库向量类是序列容器的类模板。 向量以线性排列方式存储给定类型的元素,并允许快速随机访问任何元素。 向量是需要力求保证访问性能时的首选序列容器。vector是种容器,类似数组一样,但它的size可以动态改变。vector的元素在内存中连续排列,这一点跟数组一样。这意味着我们元素的索引将非常快,而且也可以通过指针的偏移来获取vector中的元素。

2023-06-29 14:07:33 1037

原创 MsgWaitForMultipleObjects和WaitForSingleObject的应用及其注意事项

MsgWaitForMultipleObjects()Waits until one or all of the specified objects are in the signaled state, an I/O completion routine or asynchronous procedure call (APC) is queued to the thread, or the time-out interval elapses. The array of objects can include

2023-02-16 15:22:06 955 1

原创 VS2019 MFC Teechart V5.1曲线控件使用方法Teechart Activex V5.1控件绘图控件 动态绘图

VS2019通过MFC Typelib类向导添加Teechart相关类后会发生一些意想不到的错误,例如类型确实,文件缺失等错误。3. 右键 管理员身份 打开 ,此刻进入的是system32 (不是管理员打开cmd的话,用win + R的话,会提示模块已加载,但对DllRegisterServer的调用失败)。下面主要介绍动态添加曲线、改变曲线颜色、设置曲线外观、改变曲线类型、改变面板颜色、面板样式等相关的功能,导入导出功能。在添加类的头文件种增加如下语句,编译报错的都增加相关的重命名代码。

2022-12-28 09:53:48 4436 3

原创 VS2019 MFC CreateFontW 创建字体函数详细解读

CreateFont 函数创建具有指定特征的逻辑字体。 随后可将逻辑字体选为任何设备的字体。参数字体字符单元格或字符的高度(以逻辑单位为单位)。 字符高度值 (也称为 em 高度) 是字符单元格高度值减去内部前导值。 字体映射器按以下方式解释 nHeight 中指定的值。> 00< 0 对于所有高度比较,字体映射器查找不超过所请求大小的最大字体。首次使用字体时,会发生此映射。对于MM_TEXT映射模式,可以使用以下公式为具有指定点大小的字体指定高度:C++复制请求字体中字符的平

2022-12-07 19:58:57 2240

原创 VS2019 MFC 判断Windows当前操作系统是64位操作系统还是32位操作系统 Windows系统位数判断

VS2019 MFC 判断Windows当前操作系统是64位操作系统还是32位操作系统。

2022-12-07 15:05:29 670

原创 VS 2019 MFC Socket 通讯例程客户端Connect连接一对多同步通信TCP/IP通信客户端[二]

Socket进行初始化。必须包含自定义类头文件在应用程序中通过如下代码进行初始化。应用程序CPP文件源代码:最近很忙,程序写的较为匆忙,能正常运行,后期根据自己需要进行更改完善,文件发送的功能后期会陆续补上。

2022-11-09 19:28:19 2403 2

原创 VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器端[一]

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。3>原始套接字(SOCK_RAW):它提供一种能力,让我们直接跨越传输层,直接对IP层进行数据封装,通过该套接字,我们可以直接将数据封装成IP层能够认识的协议格式。1>流方套接字(SOCK_STREAM):它对应TCP协议,它提供面向连接的、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。

2022-11-07 20:56:27 3256 2

原创 VS2019 MFC MSComm 串口通信例程基于MSComm控件

Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。 要使用ActiveX控件MSComm,程序员必须将其添加入工程。.........

2022-08-29 13:57:44 8896 6

原创 VS2019 DLL动态链接库生成多个正在运行的Windows应用之间共享的DLL [三]

本例程演示如何使用 Visual Studio IDE 通过 Microsoft C++ (MSVC) 编写自己的动态链接库 (DLL)。 然后,该演练演示如何从其他 C++ 应用中使用 DLL。 DLL(在基于 UNIX 的操作系统中也称为“共享库”)是最有用的 Windows 组件类型之一 。 可以将其用作共享代码和资源、缩小应用大小的一种方法。 DLL 甚至可使应用更易于维护和扩展。在本演练中,你将创建一个 DLL 并实现一些数学函数。 然后再创建一个控制台应用来使用 DLL 中的这些函数。 ..

2022-08-15 17:24:47 1399

原创 VS2019 MFC DLL共享动态链接库(MFC 常规库)封装例程非模态调用 MFC 常规库[二]

MFC DLL规则库,封装带有对话框的DLL

2022-08-12 15:14:07 2694

原创 VS2019 MFC DLL动态链接库(MFC 扩展库)封装例程 MFC 扩展库[一]

如上图所示为导出MFC DLL并导入到工程应用的实例,从实例看出导出的MFC DLL能正常使用,说明导出过程正确无误。C++的动态链接库封装是一个较为复杂的工程,本人也是通过应用了解到其中的冰山一角,希望能跟大家一起进一步升入学习和了解DLL的运行机制。.........

2022-08-10 16:01:48 3156

原创 VS 2019 MFC 通过代码关闭 重启Windows 系统的方法和源代码

LookupPrivilegeValue Function

2022-07-19 15:11:19 834

原创 VS2019 MFC Slider Control 控件继承CSliderCtrl类重绘 自绘

VS2019 MFC IP Slider Control 控件继承CSliderCtrl类重绘

2022-07-14 13:38:41 867

原创 VS2019 MFC动态创建Slider Control控件 CSliderCtrl类成员函数Create应用创建Slider Control控件[MFC动态创建控件四]

CSliderCtrl::Create创建滑块控件,并将其附加到CSliderCtrl对象。

2022-07-14 08:42:31 1271

原创 VS2019 List Control 控件自绘例程继承CListCtrl类 OnNMCustomdraw重绘

VS2019 List Control 控件自绘例程继承CListCtrl类 OnNMCustomdraw

2022-07-13 09:41:40 1379

原创 VS 2019 MFC 通过ACE引擎连接并访问Access数据库类库封装

VS 2019 MFC 通过ACE引擎连接并访问Access数据库类库封装

2022-06-11 11:11:08 1423

原创 VS2019 MFC IP Address Control 控件继承CIPAddressCtrl类重绘

VS2019 MFC IP Address Control 控件继承CIPAddressCtrl类重绘

2022-06-11 10:29:45 316

原创 VS2019 MFC动态创建EDIT控件 ,CEDIT类成员函数Create应用创建EDIT Control控件[MFC动态创建控件三]

CEdit:: Create创建 Windows 编辑控件,并将其附加到CEdit对象。复制virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);参数dwStyle指定编辑控件的样式。 将编辑样式的任意组合应用于控件。rect指定编辑控件的大小和位置。 可以是CRect对象或RECT结构。pParentWn...

2022-05-31 08:09:27 2740

原创 VS2019 MFC动态创建ComboBox ,CComboBox类成员函数Create应用创建ComboBox控件[MFC 动态创建控件二]

CComboBox::Create创建组合框并将其附加到CComboBox对象。复制virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);参数dwStyle指定组合框的样式。 将组合框样式的任意组合应用于该框。rect指向组合框的位置和大小。 可以是RECT结构或CRect对象。pParentWn...

2022-05-30 19:10:20 2043

原创 VS2019 MFC动态创建按钮和复选框,CButton类 Create成员函数应用创建复选框和按钮[MFC动态创建控件一]

MicrosoftWare微软官网说明:CButton::Create创建Windows按钮控件并将它附加到CButton对象。virtual BOOLCreate( LPCTSTRlpszCaption, DWORDdwStyle, constRECT&rect, CWnd*pParentWnd, UINTnID );参数 lpszCaption 指定按钮控件的文本。 dwStyle 指...

2022-05-30 08:21:41 1915

原创 VS2019 MFC Check-box Control 控件自绘继承Cbutton带图标

注意: 1>本例程用到了GDI绘图相关的库文件,因此要在项目.h文件内加导入GDI绘图库文件。如下图所示,本例项目解决方案.h文件为"DoublePathWayReflowerController.h"。 2>在"DoublePathWayReflowerController.h"头文件内导入GDI绘图库。#pragma once#ifndef UNLONG_PTR#define UNLONG_PTR unsigned long#incl...

2022-05-20 19:58:27 1176 1

原创 VS2019 MFC ComBOX控件自绘的方法和实例【一】

ComBox自绘效果图:继承类H头文件class CComboBoxXI : public CComboBox{ DECLARE_DYNAMIC(CComboBoxXI)public: CComboBoxXI(); virtual ~CComboBoxXI(); void SetImageList(CImageList* pImageList); CImageList* GetImageList() const; int GetItemImage(int nIndex..

2022-05-18 22:58:14 944 1

原创 VS2019 MFC 工具栏增加ComBOX控件的方法和实例【一】

.h头文件定义变量和创建函数OnCreateToolBar()1>CComboBox m_TypeSelect;2>CToolBar m_DlgMainToolBar3>CImageList m_DlgToolBarIconList;//图标列表4>afx_msg void OnCreateToolBar();void CDoublePathWayReflowerControllerDlg::OnCr...

2022-05-17 10:04:26 1250

原创 VS 2019 MFC 右键弹出菜单栏简单例程

1》新建菜单栏。2》重载virtual BOOL PreTranslateMessage(MSG* pMsg);3》加载菜单栏。4》设置菜单栏显示位置。5》右键显示菜单栏。6》分离菜单栏。7》m_ALarmMsgListBox为CListBox绑定变量。BOOL CMFCApplicationJstReflowDlg::PreTranslateMessage(MSG* pMsg) { CWnd* m_tHwnd = AfxGetApp()->GetMa..

2022-04-30 15:41:36 1281

原创 VS2019 MFC ODBC 操作SQL SERVER 数据库

【注意】VS2019取消了之前老版本的SQL数据库向导。因此需要像VS2019以前版本一样操作数据库,就要单独写一个继承于CRecordset的类来完成向数据库添加数据、删除数据、更新数据、数据排序、数据过滤等操作。【继承类CDataBaseRec.h】#pragma once#include<afxdb.h>class CDataBaseRec : public CRecordset{public: CDataBaseRec(CDatabas...

2022-04-29 09:06:36 1653

原创 VS 2019 MFC CStatusBar 自绘制继承CStatusBar 类可改变每个Panel的字体颜色和背景颜色

MFC 状态栏自绘,状态栏字体颜色可以改变,状态栏中创建进度条。

2022-04-14 11:04:26 693 3

原创 vs2019 MFC 注册表REG_DWORD,REG_SZ,REG_BINARY操作例程,包含增加注册表子项 删除注册表子项以及键值

例程完成功能测试图封装类H头文件#ifndef _H_HKEYREGQUERY#define _H_HKEYREGQUERY#include<Windows.h>#include<cstring>using namespace std;#pragma onceclass hKeyRegQuery{public: hKeyRegQuery(); virtual~hKeyRegQuery();public: void Rea...

2022-02-26 12:06:15 903

原创 VS 2019 MFC CRC16校验算法例程总结(计算法/查表法以及CRC16校验表自动生成)

工程需要,根据网上例程对CRC16校验方法进行了总结。CRC16为通讯领域常用的校验算法,其原理想必大家都很清楚。下面为相关的总结和封装类代码。 Unicode环境下要将Cstring转换为Char*字符串要对字符串的宽度进行转换,转换方法主要用到WideCharToMultiByte()函数进行转换。 函数原型:int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, ...

2022-02-21 10:06:54 3935

原创 VS 2019 MFC Process Bar Control进度条外观风格自绘重绘

本例程对Visual Studio2019自带的Process Bar Control进度条控件进行风格自绘,借鉴网上例程进行了优化,并对其进行了简单的封装。 自绘后的进度条拥有一下四种模式。#define PS_SIMPLE 1 //简单模式#define PS_COMPLEX 2//复杂模式#define PS_ELLIPSE 3 //圆角矩形模式#...

2022-02-18 15:10:54 1848 4

原创 VS 2019 MFC Static Text控件继承CStatic类重绘

Static Text控件重绘后增加字体颜色设置接口,背景颜色设置接口,字体设置,字体大小设置接口。继承类H头文件#pragma onceclass CMyStatic : public CStatic{ DECLARE_DYNAMIC(CMyStatic)public: CMyStatic(); virtual ~CMyStatic();protected: DECLARE_MESSAGE_MAP()public: CFont m_Text; bool S..

2022-02-16 19:47:55 1080

原创 VS 2019 MFC 通过WMI技术读取计算机CPU序列号,硬盘序列号,BIOS序列号,主板序列号,系统名称以及网卡MAC地址

经行了简单的封装,江功能全部封装到了类文件。封装类文件H头文件#ifndef _H_GETSYSTEMHARDWAREID#define _H_GETSYSTEMHARDWAREID#include"targetver.h"#include<wbemcli.h>#include<string.h>#include <iostream>#include <Windows.h>#include <comdef.h...

2022-02-16 19:25:29 2306

原创 VS 2019 MFC 圆形按钮指示灯继承CButton类自绘例程

例程图片继承类H文件#pragma onceclass CRoundButton : public CButton{ DECLARE_DYNAMIC(CRoundButton)public: CRoundButton(); virtual ~CRoundButton();protected: DECLARE_MESSAGE_MAP()public: virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemS...

2022-02-16 19:10:38 1627 1

原创 VS 2019 MFC Edit Control控件自绘带软键盘

实现功能:点击Edit控件后弹出软键盘,并能设置软键盘的输入最大者和最小值,软键盘采用非模态对话框创建,软键盘按钮字体颜色、背景颜色可以改变。Edit控件获得焦点和失去焦点后字体颜色和背景颜色动态可变。工程文件H文件#include"CEditJF.h"#pragma onceclass CMFCApplicationKeyBoardNumPadDlg : public CDialogEx{public: CMFCApplicationKeyBoardNumP...

2022-01-21 13:32:38 1205

西门子S7通信开源库Snap7 64位编译库文件

Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试,M226ES支持S7主站和从站协议。S7作为主站,S7-1200做为从站的通信也已经过测试。

2024-03-01

Libmodbus-2.1.6编译完成库文件

1、进入到libmodbus\src\win32文件夹下, 2、双击configure.js文件进行编译,成功后会弹出编译完成窗口,点击关闭 3、然后在双击modbus-9.sln通过VS打开项目,打开项目完成后编译即可 4、编译完成后libmodbus\src\win32文件夹下就会出现modbus.dll和modbus.lib两个文件

2024-01-03

VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器/客户端例程

VS 2019 MFC Socket 通讯例程服务器端Select一对多同步通信TCP/IP通信服务器/客户端例程

2022-12-28

VS2019 MFC MSComm串口通信源代码

 MSComm控件通信功能的实现,还是间接调用Windows API编程的结构。他提供了一系列标准通信命令的使用接口,利用它可以建立与串口的连接,并可以通过串口连接到其他设备,发出命令,交换数据以及见识和响应串行连接中发生的事故与错误。 目前,MSComm空间提供了“事件驱动”和“查询法”两种处理通讯问题的方法。 数据按驱动方式,是处理串行端口交互作用的一种非常有效的方法。在很多情况下,事件发生的时候要进行通知,这样我们就可以应用MSComm控件的OnComm()事件来捕获这些通信事件(当然啦,OnComm事件还可以检查和处理通信错误)。在实际的通信编程过程中,我们也正式在OnComm()事件处理函数中添加自己处理的代码,基于事件驱动-消息响应的方式可靠性极高!         查询方式,实质上还是事件驱动,在某些情况下该种方式可能更便捷。在程序的每个关键功能之后可以通过检查CommEvent属性值来查询事件和错误。

2022-08-29

VS2019 MFC DLL共享动态链接库(MFC 常规库)封装例程非模态调用例程。(里面包含MFC 扩展库何规则库两个例程)

MFC DLL规则库封装例程及其调用方法,包含静态调用和动态调用。

2022-08-15

MFC 扩展DLL封装例程

准备把自绘控件单独封装到DLL类中,尝试使用“使用共享MFC DLL的规则DLL”建立项目,总是无法找到.lib,最终发现应该使用“MFC扩展DLL”类型建立DLL项目。 自带的基本控件都不怎么美观,所以一般开发者都会自定义类对控件进行重绘。手里也积累了不少控件的重绘,对对话框、静态文本、列表框等。 但是每次都要把这些类重新导入到新的工程里,比较麻烦,而且我也不想公开我积累的这些代码,所以想到了封装成库文件,每次只要导入头文件和库就行了,这样别人也看不到内部实现。

2022-08-10

VS2019 MFC List Control控件自应用例程

VS2019 MFC List Control控件自应用例程

2022-06-13

VS2019MFC 控件自绘大全(按钮/复选框/单选框/菜单栏/静态文本/等控件自绘继承类)

本例程主要包含MFC较为常用的一些控件的自绘继承类,自绘全都为自定义类,直接调用即可。都是些较为简单的自绘,可供初学者学习。

2022-05-19

VS2019 MFC 操作系统注册表

VS2019 MFC 操作系统注册表包括读取写入二进制、读取写入字符串、读取写入数值、删除注册表键值、删除注册表子相等功能

2022-04-30

VS2019 Edit Control 重绘带软件键盘输入MFCApplicationKeyBoardNumPad.rar

1、Edit控件重绘。 2、带软键盘输入。 3、透明软键盘窗体。 4、软键盘按钮重绘,键盘按钮颜色可变。 5、Edit编辑框获得焦点和失去焦点背景颜色和字体颜色可变。

2022-01-22

VS2019 MFC类库CrectTracker类重写MFCApplicationCRectTracker.rar

VS2019 MFC类库CrectTracker类重写

2022-01-07

VS2019 GDI CBrush 例程MFCApplicationGDICBrushDemo.rar

VS2019 GDI CBrush 例程

2022-01-06

VS2019 Cpen例程MFCApplicationGDICpenDemo.rar

VS2019 Cpen例程,都是一些很简单的例程。对初学者很有帮助,一起学习VS2019

2022-01-06

VS2019字体和文本输出例程MFCApplicationTextMetricsDemo.rar

VS2019字体和文本输出例程

2022-01-06

VS2019 编辑框例程MFCApplicationl_Testone.rar

VS2019 编辑框例程

2022-01-06

VS2019 向导属性对话框例程MFCApplicationWizardPropertyPageTest.rar

VS2019 向导属性对话框例程

2022-01-05

VS2019 TreeControl例程MFCApplicationTreeControl.rar

VS2019 TreeControl例程

2022-01-05

VS2019 Timer定时器例程MFCApplicationTimerDemTest.rar

VS2019 Timer定时器例程

2022-01-05

VS2019 动态加载图片例程MFCApplicationPictureControlDynamicLoad.rar

VS2019 动态加载图片例程

2022-01-05

VS2019 PictureControl控件例程MFCApplicationPictureControl.rar

VS2019 PictureControl控件例程

2022-01-05

西门子S7-1200PLC USS/V20/PID/位置控制综合程序StartAndStopMotor.rar

西门子S7-1200PLC USS/V20/PID/位置控制综合程序。PID带简单滤波程序。V20采用ModbusTCP协议控制。内有伺服点动,等控制程序。

2022-01-05

VS2019 CSplitterWnd例程MFCApplicationCSplitterWndDemo.rar

VS2019 CSplitterWnd例程

2022-01-05

VS2019CFontDialog对话框类例程MFCApplicationCFontDialogDemo.rar

VS2019CFontDialog对话框类例程

2022-01-04

VS2019CFileDialog对话框类例程MFCApplicationCFileDialogDemo.rar

VS2019CFileDialog对话框类例程

2022-01-04

VS2019 CTime、CTimeSpan例程ConsoleApplicationCTimeAndCTimeSpan.rar

VS2019 CTime、CTimeSpan例程

2022-01-04

vs2019 自动控件大小自适应类ResizeDlg.rar

vs2019 自动控件大小自适应类ResizeDlg.rar

2022-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除