飞鸽传书 CFileDialog 读取多文件

【MFC】文件选择框——CFileDialog类 01、目录 目录01、目录02、CFileDialog类03、重要函数 & 多文件实例04、CFileDialog注意事项05、三个栗子06、小结 02、CFileDialog类 CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能 本章的CFileDialog与上一章节所聊的BROWSEINFO结构功能相差不大,但是两者之间略有不同。 一个最本质的区别,一个是MFC类,一个是一种结构,单从功能上, 阅读详情

飞鸽传书网 开发接上天的时候,适用到 CFileDialog,这里详细介绍 CFileDialog 的用法和简介,读取多文件

MFC中使用CFile类和CFileDialog可以很简单的载入和保存文件……

CFileDialog文件选择对话框的使用:
首先构造一个对象并提供相应的参数,构造函数原型如下:
CFileDialog::CFileDialog(
BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框
LPCTSTR lpszDefExt = NULL, //默认的文件扩展名
LPCTSTR lpszFileName = NULL, //默认的文件名
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格
LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名
CWnd* pParentWnd = NULL //父窗口句柄指针
);

LPCTSTR lpszFilter 参数格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

创建文件对话框可以使用DoModal(),(只有调用了这个方法后才会弹出你建的CFileDialog对话框)在返回后可以利用下面的函数得到用户选择:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。

下面是实现代码:
//打开文件
//创建文件名缓存(fileBuffer)和文件读取缓存(rBuffer)
//此处如果不把缓存置0,在后面的设定中就会出错,如果是动态申请的,请用memset或者for循环把数组清零
char fileBuffer[5010] = {0}, rBuffer[5010] = {0};
int rBSize;
//定义一个CFile类,用来处理文件
CFile in;
//定义一个CFileDialog类,用来显示标准的打开文件对话框
CFileDialog inDlg(FALSE, NULL, NULL, NULL, _T("自定义文件类型 (*.xxx)|*.xxx|所有文件 (*.*)|*.*||"), NULL);
inDlg.m_ofn.lpstrTitle = _T("打开自定义文件");
//设定一个文件名缓存,因为CFileDialog内置的文件名缓存长度只有200,但是很多时候,文件的路径远大于这个数,为了保险起见,所以要自己设定一个文件名缓存
inDlg.m_ofn.lpstrFile = fileBuffer;
//设定缓存长度
inDlg.m_ofn.nMaxFile = 5000;
//显示对话框,并处理按了确定按钮的事件
if(inDlg.DoModal() == IDOK) {
//以只读方式打开文件
if(in.Open(inDlg.GetPathName(), CFile::modeRead)) {
//得到文件长度,从而确定读取缓存的大小
rBSize = in.GetLength();
//避免数组越界,当然在这里也可以动态申请缓存空间
if(rBSize > 5000) rBSize = 5000;
//读入数据
n.Read(rBuffer, rBSize);
//关闭文件
in.Close();
MessageBox("打开文件成功", "搞定了", MB_ICONEXCLAMATION | MB_OK);
} else {
MessageBox("打开文件失败", "失败了", MB_ICONSTOP | MB_OK);
}
}

//保存文件
//创建文件名缓存(fileBuffer)和文件写入缓存(wBuffer)
//此处如果不把缓存置0,在后面的设定中就会出错,如果是动态申请的,请用memset或者for循环把数组清零
char fileBuffer[5010] = {0}, wBuffer[5010] = {0};
int wBSize;
CFile out;
CFileDialog outDlg(FALSE, NULL, NULL, NULL, _T("自定义文件类型 (*.xxx)|*.xxx|所有文件 (*.*)|*.*||"), NULL);
//设定保存对话框标题
outDlg.m_ofn.lpstrTitle = _T("保存自定义文件");
//使用自定义的文件名缓存
outDlg.m_ofn.lpstrFile = fileBuffer;
//设定保存文件的默认后缀,如果自己有输入后缀,则时候输入的后缀
outDlg.m_ofn.lpstrDefExt = "xxx";
//设定缓存大小
outDlg.m_ofn.nMaxFile = 5000;
//显示对话框
if(outDlg.DoModal() == IDOK) {
//得到文件名,并用创建和写入方式打开
if(out.Open(outDlg.GetPathName(), CFile::modeWrite | CFile::modeCreate)) {
//在这里把你要写入文件的内容写入缓存,如果写入的内容过长,可以分次写入
//得到写入当前缓存中内容的长度
wBSize = strlen(wBuffer);
//写入文件
out.Write(wBuffer, wBSize);
//关闭文件
out.Close();
MessageBox("保存文件成功", "搞定了", MB_ICONEXCLAMATION | MB_OK);
} else {
MessageBox("保存文件失败", "失败了", MB_ICONSTOP | MB_OK);
}
}

-----------------------------------------------------------------------------------

VC++ CFileDialog 读取多个文件
CFileDialog dlg(TRUE,
"DEM Files (*DEM)",
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,
_T("Layer Files (*.DEM;*.TIFF;*.BMP;*.JPG)|*.DEM;*.TIFF;*.BMP;*.JPG;)||"),
NULL);
dlg.m_ofn.lpstrTitle="请加载相关图层";
//最多可以打开100个文件
dlg.m_ofn.nMaxFile = 100 * MAX_PATH;
dlg.m_ofn.lpstrFile = new TCHAR[dlg.m_ofn.nMaxFile];
ZeroMemory(dlg.m_ofn.lpstrFile, sizeof(TCHAR) * dlg.m_ofn.nMaxFile);

//显示文件对话框,获得文件名集合
int retval = dlg.DoModal();
if(retval==IDCANCEL)
return false;
POSITION pos_file;
pos_file = dlg.GetStartPosition();
CArray<CString, CString> ary_filename;
while(pos_file != NULL)
ary_filename.Add(dlg.GetNextPathName(pos_file));

//根据扩展名读取相关文件
for(int i=0; i<ary_filename.GetSize(); i++)
{
CString str_ext;
str_ext = ary_filename.GetAt(i).Right(3);
if((str_ext == "DEM")||(str_ext == "dem"))
{
}
else if((str_ext == "TIFF")||(str_ext == "tiff"))
{
}
else if((str_ext == "BMP")||(str_ext == "bmp"))
{
}
else if((str_ext == "JPG")||(str_ext == "jpg"))
{
}
else if((str_ext == "SHP")||(str_ext == "shp"))
{
}
}
return true

//////////////////////////////////

CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。

  可以用构造函数提供的方式使用CFileDialog,也可以从CFileDialog派生出自己的对话类并编写一个构造函数来适应你的需要。每种情况下,对话框都与标准MFC对话框一样工作。因为它们都是CCommonDialog类的派生类。

  要使用CFileDialog,先用CFileDialog构造函数构造一个对象,当创建了一个对话框后,可以设置或修改m_ofn结构中的任何值,以初始化对话框控件的值或状态。m_ofn结构是OPENFILENAME类型的。要了解更多信息,可参阅联机文档“Win32 SDK”中的OPENFILENAME结构。

  初始化对话框控件后,调用DoModal成员函数显示对话框并使用户输入路径和文件。DoModal返回不论是用户选择了OK(IDOK)还是取消(IDCANCEL)按钮。

  当DoModal返回IDOK,可以使用某一个CFileDIalog的公共成员函数获取用户输入的信息。

  CFileDIalog包含许多保护成员,使你可以处理常用的共享冲突、文件名合法性检查、列表框改变通知。这些保护成员对许多应用来说用处不大,因为缺省处理是自动的。对这些函数来说,消息映射入口是不必要的,因为它们是标准虚函数。

  可以使用Windows CommDlgExtendError函数判断在初始化对话框时是否是发生了错误,并获取关于错误的更多信息。

  析构一个CFileDialog对象是自动,无须调用CDialog::EndDialog。

  要使用户选用多个文件,可在调用DoModal之前设置OFN_ALLOWMULTISELECT标志。你应提供文件名缓冲区来放置返回的多个文件名的列表,这通过用一个分配了的缓冲区指针替换m_ofn.lpstrFile来实现,要在创建了CFileDialog之后调用DoModal之前进行此操作。另外,必须用m_ofn.lpstrFile指向的缓冲区字节数来设置m_ofn.nMaxFile。

  CFileDialog依赖于Windows3.1及以后版本中的COMMDLG.DLL。

  如果从CFileDialog中派生出一个新类,可用消息映射处理。要扩展消息处理,从CWnd中派生一个类,向新类中加入一个消息映射并为新消息提供成员函数,无须提供一个钩子函数来定制对话框。

  要定制对话框,从CFileDialog中派生一个对象,提供一个定制对话模板,从扩展控件中加入一个消息映射,处理通知消息。任意未处理的消息将传递给基类。

  无须定制钩子函数。

  #include <afxdlgs.h>

  CFileDialog类的成员

/////////////////////////////////

CFileDialog构造一个CFileDialog对象操作

  DoModal显示对话框并使用户可以进行选择

  GetPathName返回选定文件的完整路径

  GetFileName返回选定文件的文件名

  GetFileExt返回选定文件的扩展文件名

  GetFileTitle返回选定文件的标题

  GetNextPathName返回下一个选定文件的完整路径

  GetReadOnlyPref返回选定文件的只读状态

  GetStartPosition返回文件名列表的第一个元素位置

  可覆盖的函数

  OnShareViolation发生共享冲突时调用

  OnFileNameOK确认键入对话框中的文件名

  OnLBSelChangedNotify当列表框选择改变时调用

  OnInitDone处理WM_NOTIFY CDN_INITDONE消息

  OnFileNameChange处理WM_NOTIFY CDN_SELCHANGE消息

  OnFolderChange处理WM_NOTIFY CDN_FOLDERCHANGE消息

  OnTypeChange处理WM_NOTIFY CDN_TYPECHANGE消息

  文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:

  CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );

  参数意义如下:

  bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。

  lpszDefExt 指定默认的文件扩展名。

  lpszFileName 指定默认的文件名。

  dwFlags 指明一些特定风格。

  lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:

  "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

  pParentWnd 为父窗口指针。

////////////////////////////////////////

创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:

  CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/ est/ est1.txt

  CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt

  CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt

  CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1

  POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。

  CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。

  例如

  {

  CString

  FilePathName;

  CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框

  if(dlg.DoModal()==IDOK)

  FilePathName=dlg.GetPathName();

  }

  相关信息:CFileDialog 用于取文件名的几个成员函数:

  假如选择的文件是C:WINDOWSTEST.EXE

  则:

  (1)GetPathName();取文件名全称,包括完整路径。取回C:/WINDOWS/TEST.EXE

  (2)GetFileName();取文件全名:TEST.EXE

  (3)GetFileTitle();取回TEST

  (4)GetFileExt();取扩展名EXE

  补充: 在控制台下使用这个类需要设置在静态库中使用MFC,然后构造 AfxSetResourceHandle(GetModuleHandle(NULL));

  相关头文件 #include <Afxdlgs.h>

////////////////////////

文件对话框风格详解

OFN_ALLOWMULTISELECT 指定文件名列表框允许多选。如果同时你设置了OFN_EXPLORER标记,对话框使用Explorer风格用户界面;否则它使用旧风格用户界面。
  如果用户选择了一个以上的文件,lpstrFile缓冲返回当前目录下所有被选择的文件的文件名。nFileOffset成员是到第一个文件名的偏移

量(字节或字符),并且nFileExtension成员不被使用。对于Explorer风格对话框,目录和文件名是被NULL分隔的,在最后的文件名后带有额外的NULL。这个格式使Explorer风格的对话框能返回包含空格的长文件名。对于旧风格对话框,目录和文件字符串是被空格分隔的,函数为带有空格的文件名使用短文件名。你可以使用FindFirstFile函数在短文件名和长文件名之间转换。

如果你为一个旧风格对话框指定了一个定制的模板,文件名列表框的定义必须包含LBS_EXTENDEDSEL值。

OFN_CREATEPROMPT 如果用户指定了一个不存在的文件,这个标记使用对话框能提示用户是否新建这个文件。如果用户选择了新建这个文件,对

话框关闭并且函数返回指定的名字;否则,对话框继续停留。如果你使用带有OFN_ALLOWMULTISELECT标记的这个标记,对话框允许用户去指定一个不存在的文件。


OFN_DONTADDTORECENT Windows 2000:防止系统为选择的文件增加快捷链接到最近使用文档中。要找回目录的位置,调用还有

CSIDL_RECENT标记的SHGetSpecialFolderLocation函数。
  OFN_ENABLEHOOK 激活在lpfnHook成员中指定的钩子函数。
  OFN_ENABLEINCLUDENOTIFY Windows 2000:当用户打开一个文件夹时,引起对话框发送CDN_INCLUDEITEM通知消息到你的OFNHookProc程序

。对话框为在最近打开的文件夹中的每一个项目发送一个通知。这些消息使你能够控制那些在对话框中显示的文件夹项目的列表。


OFN_ENABLESIZING Windows 2000,Windows 98:使Explorer风格的对话框可以使用鼠标或键盘调整大小。缺省时,Explorer风格的打开和

另存为对话框允许被调整大小,不顾这个标记是否被设置。这标记仅在你提供了一个钩子程序或定制模板时是必需的。旧风格的对话框不允许

调整大小。


OFN_ENABLETEMPLATE 指出lpTemplateName成员是指向对话框模板资源的名字,这个模板资源在能被hInstance成员识别的模块中。
  如果OFN_EXPLORER标记被设置,系统使用指定的模板去建立一个对话框,是默认Explorer风格对话框的子窗口。如果OFN_EXPLORER标记没

有被设置,系统使用旧风格的对话框替代默认的对话框。
  OFN_ENABLETEMPLATEHANDLE 指出hInstance成员能识别的包含预载对话框模板的数据块。如果这个标记被指定的,系统忽略

lpTemplateName。
  如果OFN_EXPLORER标记被设置,系统使用指定的模板去建立一个对话框,是默认Explorer风格对话框的子窗口。如果OFN_EXPLORER标记没

有被设置,系统使用模板去建立一个旧风格对话框替代默认对话框。


OFN_EXPLORER 指出任何打开或另存为对话框使用新的Explorer风格的用户化模块。关于更多的信息,参见Explorer-Style Hook

Procedures和Explorer-Style Custom Templates。
  缺省下,打开和另存为对话框使用Explorer风格用户界面,不顾这个标记是否设置。这个标记仅在你提供了一个钩子程序或定制模板或设

置了OFN_ALLOWMULTISELECT标记时是必需的。
  如果你想使用旧风格的界面,省略OFN_EXPLORER 标记,并且提供一个代替的旧风格模板或钩子程序。如果你想用旧风格但不需要一个定制

模板或钩子程序,简单的提供一个钩子程序,让它返回FALSE。
  OFN_EXTENSIONDIFFERENT 指定用户输入的一个文件的扩展名与lpstrDefExt指定的扩展名不同。如果lpstrDefExt是NULL,函数不使用这个

标记。
  OFN_FILEMUSTEXIST 指定用户仅可以在文件名登录字段中输入已存在的文件的名字。如果这个标记被指定的并且用户输入了一个无效的名

字,对话框程序显示一个等待消息框。如果这个标记被指定,OFN_PATHMUSTEXIST标记也被使用。
  OFN_FORCESHOWHIDDEN Windows 2000:强制显示系统和隐藏属性的文件,从而压倒用户设置的显示或不显示隐藏文件。否则,带有系统和

隐藏标记的文件不被显示。
  OFN_HIDEREADONLY 隐藏只读复选框。
  OFN_LONGNAMES 对于旧风格对话框,这个标记引起对话框使用长文件名。如果这个标记没有被指定,或如果OFN_ALLOWMULTISELECT标记也

被设置,旧风格对话框为带有空格的文件名使用短文件名(8.3格式)。
  Explorer风格对话框忽略这个标记,通常显示长文件名。
  OFN_NOCHANGEDIR 如果当搜索文件时用户改变了目录的时候,恢复当前目录到它的初始值。
  OFN_NODEREFERENCELINKS 引导对话框为选择的快捷方式(.LNK)文件返回路径和文件名。如果这个值没有被指定,对话框返回这个快捷方

式所引用文件的路径和文件名。
  OFN_NOLONGNAMES 对于旧风格对话框,这个标识引起对话框去使用短文件名(8.3格式)。
  Explorer风格对话框忽略这个标记,通常显示长文件名。
  OFN_NONETWORKBUTTON 隐藏和显示风格按钮。
  OFN_NOREADONLYRETURN 指定返回的文件不带有只读复选框,不是在写保护的目录中。
  OFN_NOTESTFILECREATE 指定文件不是在对话框关闭前建立的。如果应用程序保存文件到一个建立的非映象风格共享上,这个标记应该被指

定的。当一个应用程序指定了这标记,库不能检查写保护,磁盘满,打开驱动器门或网络保护。应用程序使用这个标记必须小心执行文件操作

,因为一旦文件被关闭,它不能重新打开。
  OFN_NOVALIDATE 指定公共对话框允许在返回的文件名中有无效的字符。典型的,正在调用的程序使用一个钩子程序通过FILEOKSTRING消息

检查文件名。如果在编辑控件中的文本框是空的或只包含了空格,那么文件和目录列表框是被更新的。如果编辑控件中的文本框包含了别的东

西,那么nFileOffset和nFileExtension的设置值是通过分析文本产生的。没有默认的扩展名被添加到文本,也没有文本被复制到

lpstrFileTitle指定的缓冲。
  如果通过nFileOffset指定的值比0小,文件是无效的。否则,文件名是有效的。如果OFN_NOVALIDATE没有被指定,nFileExtension和

nFileOffset可以被使用。
  OFN_OVERWRITEPROMPT 如果选择的文件已经存在,使用另存为对话框产生一个消息框。用户必须确认是否复盖这个文件。
  OFN_PATHMUSTEXIST 指定用户仅能输入的路径和文件名。如果这个标记被使用并且用户在文件名输入字段中键入了一个用效的路径和文件

名,对话框函数显示一个等待消息。
  OFN_READONLY 当对话框建立时,显示被选择的只读复选框。这个标记指出当对话框被关闭时只读复选框的状态。
  OFN_SHAREAWARE 指出如果调用OpenFile函数因为网络共享冲突而失败,这个错误被忽略并且对话框返回选择的文件名。
  如果这个标记没有被设置,当用户选择的文件名发生网络共享冲突时,对话框发送通知到你的钩子程序。如果你设置了OFN_EXPLORER标记

,对话框发送CDN_SHAREVIOLATION消息到钩子程序。如果你没有设置OFN_EXPLORER,对话框发送SHAREVISTRING注册的消息到钩子程序。
  OFN_SHOWHELP 使对话框显示帮助按钮。hwndOwner成员必须指定一个窗口,这个窗口作为接收对话框发送的HELPMSGSTRING注册的消息,当

用户单击帮助按钮时对话框发送这个消息。
  当用户单击帮助按钮时,一个Explorer风格的对话框发送CDN_HELP通知消息到你的钩子程序。

来源:飞鸽传书 CFileDialog 读取多文件


【MFC】深入解析CFileDialog类:从基础使用到高级定制 本文深入解析MFC中的CFileDialog类,从基础的文件选择框创建到高级定制功能。详细介绍了构造函数参数、单文件与多文件选择、信息获取方法,并探讨了通过m_ofn结构体与派生类重写进行深度定制的技巧,帮助开发者高效实现专业且用户友好的文件对话框功能。 阅读详情

相关推荐

【MFC】 CFileDialog类 实现文件打开和文件保存(另存为)

目录 应用场景 CFileDialog类 实例 文件打开(导入) 文件另存为 附录 dwFlags参数 相关OFN标志位 参考链接: 应用场景 在大多数常用软件中,都会发现“打开”和“另保存”的选项,以“记事本的另存为”为例,其打开对话画框的界面如下: 为了实现如上图所示的对话框界面,我们可以通过CFileDialog类来实现。 CFileDialog类 CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件

UniverseLin的博客 1万+

MFC中的文件对话框类CFileDialog详解

目录 文件对话框的分类 文件对话框类CFileDialog 对话框选项常用属性(实例:dialog) 对话框常用方法 文件对话框实例 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框。例如,很多编辑软件像记事本等都有“打开”选项,选择“打开”后会弹出一个对话框,让我们选择要打...

Rock N' Roll Forever 9423

4G+GNSS定位模块DX-CT511N-B:AT指令实战与多协议通信指南

本文详细介绍了4G+GNSS定位模块DX-CT511N-B的AT指令实战应用与多协议通信配置。内容涵盖TCP/UDP通信、MQTT协议集成、HTTP服务交互以及GNSS定位功能的深度解析,为开发者提供从基础指令到高级调试的完整指南,助力物联网设备开发。

hope8的博客 289

打怪升级之CFileDialog类介绍

CFileDialog类介绍

Blanchet的博客 1565

透传产品上报AEP平台数据流程

1. 什么是数据透传 数据透传:指的是在通讯中不管传输的业务内容如何,只负责将传输的内容由源地址传输到目的地址,而不对业务数据内容做任何改变。 这篇文章描述了如何将一台NB设备通过透传方式将数据传输到AEP平台,再通过数据订阅的方式获取到这些数据。 2. 步骤 2.1 设备在AEP平台创建 AEP:https://dm.ctwing.cn/ 新建产品 添加设备 根据模组的15位IMEI添加设备 开启内网穿透 具体可参照我的这篇博客:内网穿透-如何进行本地数据调试 设置数据推送

qq_42265394的博客 2296

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 382

飞鸽传书 CFile 来读取位图 BMP 文件

飞鸽传书 在读取位图的时候,需要用到 CFile 来读取位图 BMP 文件,以下是采用CFile打开并显示24位BMP位图的简单示例程序,可实现对位图数据的操作。 可实现对位图数据的操作: void CTJBmpDlg::OnButtonOpen() { // TODO: Add your control notification handler code here CS

神经网络爱好者 1388

Modbus RTU/TCP协议栈手写实现:主从站设计、功能码、CRC、异常响应

本文从协议栈架构、帧结构、功能码、CRC校验、异常响应、主从站设计等多个维度,完整阐述了Modbus RTU/TCP协议栈的手写实现方案。帧间隔机制是RTU的核心,T3.5超时检测决定了帧边界识别CRC16查表法以512字节ROM换取8倍性能提升,适合嵌入式功能码路由表实现可扩展的代码架构,便于新增功能异常响应机制保障协议健壮性,每个错误都有明确反馈Modbus TCP在RTU基础上增加MBAP头,实现以太网扩展多核RTOS环境下的并发访问与线程安全RS-485总线的电气隔离与浪涌保护。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

CFileDialog

文件打开 // 打开一个txt DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; //一般 “文本文件*.txt|*.txt”为一组,最后加上 "||" const TCHAR* filter = _T("文本文件*.txt|*.txt|word文档*.doc|*.doc|所有文件(*.*)|*.*||"); CFileDialog dlg(TRUE, _T("txt"), NULL, dwFlags,

zeqi1991的博客 2410

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

关于 Nginx 监听地址 0.0.0.0 的详细解释

0.0.0.0在Nginx配置中表示监听服务器所有网络接口(包括公网IP、内网IP和本地回环地址),这是默认配置。当使用listen 80;时,Nginx会接受通过服务器任何IP地址的80端口访问请求。相比只监听特定IP,这种配置更通用,但也意味着服务会对外网开放,需注意安全风险。可通过netstat命令验证监听状态,显示0.0.0.0:80即表示正确配置。

weixin_43674738的博客 1566

cFileDialog用法

例如,在Windows平台上,使用C++编程时,你可以使用 Windows API 中的 "GetOpenFileName" 函数来创建一个打开文件对话框,或使用 "GetSaveFileName" 函数创建一个保存文件对话框。总之,"cFileDialog" 是一个通用的概念,用于表示各种编程环境中的文件对话框功能,用于与用户交互地选择文件或保存文件。在其他编程环境中,例如使用Qt、wxWidgets、Tkinter等框架,也提供了类似的文件对话框组件,可以方便地与用户交互选择文件路径和名称。

ffffffeiyu的博客 858

Agent应用实践之二十九 - 设计模式:人机协同

本章讲解了一种比较常见的设计模式:人机协同。通过一些场景举例,同时使用AgentScope本身自带的能力实现的人机协同模式,最后通过源码分析了AgentScope中如何实现。通过了解人机协同模式对于实际工程使用也是非常有用的。

代码让AI扣 305

【vc6++学习笔记】cFileDialog用法

"cFileDialog" 通常是指一个文件对话框,用于在计算机程序中打开或保存文件时与用户进行交互。这是一个常见的图形用户界面(GUI)元素,允许用户浏览文件系统、选择文件路径和输入文件名。 在不同的编程环境和框架中,文件对话框的实现方式可能会有所不同。例如,在Windows平台上,使用C++编程时,你可以使用 Windows API 中的 "GetOpenFileName" 函数来创建一个打开文件对话框,或使用 "GetSaveFileName" 函数创建一个保存文件对话框。这些函数允许你自定义对话框

ffffffeiyu的博客 1571

ArcGIS Pro符号化教程

本文详细介绍了ArcGIS Pro的软件设置和符号化操作步骤。主要包括:1)设置默认工程目录和关闭地图自动加载;2)创建新工程的基本流程;3)点要素的单一符号化方法,包括样式修改和图层调整;4)图表符号显示过滤器的使用,涉及字段添加、图表类型选择和背景设置。文章还提供了操作截图和数据下载链接,适合GIS初学者学习ArcGIS Pro的基础符号化操作。

WwLK123的博客 548

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VS2010/MFC入门编程九(对话框:文件对话框的操作)

文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框。例如,很多编辑软件像记事本等都有“打开”选项,选择“打开”后会弹出一个对话框,让我们选择要打开文件的路径,这个对话框就是打开文件对话框;除了“打开”选项一般还会有“另存为”选项,选择“另存为”后往往也会有一个对话框弹出,让我们选择保存路径,这就是保存文件对话框。正如上...

酒馆~酒友 1400

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

CFileDialog的用法和简介,读取多文件

MFC中使用CFile类和CFileDialog可以很简单的载入和保存文件…… CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog(BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框LPCTSTR lpszDefExt = NULL, //默认的文件扩展名LPCTSTR lpszFileName = NULL, //默认的文件名DWORD dwFlags

zmq5411的专栏 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CFileDialog简单使用

CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能[1]。 一、简单使用示例: 1、参数指定构造文件打开对话框,其余默认参数 CFileDialog dlg(TRUE); // 构造文件打开对话框 dlg.m_ofn.lpstrTitle = _T(...

gy笨瓜的博客 3001

C++ MFC/BCG编程:文件对话框(CFileDialog、CFolderPickerDialog)

CFileDialog 和 CFolderPickerDialog 是 MFC 中用于文件及目录选择的常用对话框类。CFileDialog 支持打开/保存文件操作,提供文件名过滤、多选文件等功能;CFolderPickerDialog 专用于文件夹选择,支持新版 UI 和路径编辑。两者均通过 DoModal() 显示对话框,获取用户选择路径后执行后续操作。示例代码展示了单文件选择、多文件选择和目录选择等典型应用场景。

qq_39281631的博客 1570

MFC_系统对话框(CFileDialog、字符编码转化ANSI-UTF8-Unicode、Window记事本demo练习)

多字节编码:为了扩展编码可以表示的字符,引入了双字节字符集。如果第一个字节为0x81->0x9F之间 或 0xE0->0xFC之间需要检测下一个字节,拼接起来才能确定这个文字。ANSI不能直接转化为UTF-8、ANSI需要先转化为Unicode,再由Unicode转化为UTF-8。如果没有定义Unicode编码这个工程是ANSI工程(多字节编码),TCHAR=>char。主要分为UTF-8、UTF-16、UTF-32。记事本内的文字编码是Unicode,保存记事本内容后,保存文件编码为ANSI。

dodamce的博客 1629

MFC中CFileDialog类

CFileDialog类用来创建“打开文件”对话框或者“另存为”对话框,如图1所示。   图1 “打开文件”对话框 CFileDialog类派生自CCommonDialog类,CCommonDialog类派生自CDialog类。 1 CFileDialog对话框的显示 通过CFileDialog类的构造函数实现对象的创建。 1.1 CFileDialog类的构造函数 CFileDia

hou09tian的博客 1661

CFileDialog使用方法

经常用到这个类,避免每次都去查用法,这里记录一下: 用法很简单,通过下面这个例子就很清楚了: CFileDialog openDlg(TRUE, _T("CLS File(*.cls)|*.cls"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("CLS File(*.cls)|*.cls||"),...

qq_34489443的博客 2090

【CFileDialog 的 应用】

CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,包括目录名和扩展名。CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名。(1)DlgOpenFile第一个参数为FALSE时,显示保存对话框,为TRUE时,显示打开对话框。lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。CString CFileDialog::GetExtName( ) 得到完整的文件扩展名。

u010001070的博客 183

cfiledialog(cfiledialog头文件)

如何设置cfiledialog打开文件的浏览方式 CFileDialog filedlg(true,"Txt File",NULL,0,"文本文件|*.txt|可执行文件|*.exe|网页|*.htm||"); 其中的参数:1,true为打开文件,false为保存文件;其他的自己看看MSDN吧~ filedlg.Do...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 743

文件对话框的用法(CFileDialog)

①、文件选择对话框; //单选; CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , _T("Text Files (*.txt)|*.txt|WinRar Files (*.rar)|*.rar|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All File

u010679895的专栏 3043

C++ 学习使用 MFC CFileDialog

CFileDialog:CFileDialog(BOOL     bOpenFileDialog, LPCTSTR     lpszDefExt=NULL, LPCTSTR     lpszFileName=NULL, DWORD     dwFlags     =     OFN_HIDEREADONLY     |     OFN_OVERWRITEPROMPT, LPCTSTR

xingqingxz的专栏 1204
上一篇: 飞鸽传书 CFile 来读取位图 BMP 文件
下一篇: CArchive 飞鸽传书 如何实现文件的序列号存取
普通网友
博客等级 码龄22年 1万+粉丝 2784原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值