VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 418|回复: 1

请教SYC大神扩展文件选择对话框教学视频中的问题

[复制链接]
39_avatar_middle
最佳答案
0 
在线会员 发表于 2022-6-6 02:08:10 | 显示全部楼层 |阅读模式
我用的IDE是:Microsoft Visual Studio Community 2022 (64 位) - Current版本 17.2.3,在学习扩展文件选择对话框教学视频中(视频 地址:https://www.bilibili.com/video/BV1KJ411k7fX?p=109&spm_id_from=pageDriver),我按视频中的步骤,增加CFileDialogEx类:


但VC自动生成的代码(CFileDialogEx.h)如下:
  1. #pragma once
  2. #include <afxdlgs.h>
  3. class CFileDialogEx :public CFileDialog
  4. {
  5. };
复制代码
,为什么类的内容是空的呢,这和视频不一致,我手动输入了类的内容如下:
  1. #pragma once
  2. #include <afxdlgs.h>
  3. class CFileDialogEx :public CFileDialog
  4. {
  5.         DECLARE_DYNAMIC(CFileDialogEx)
  6. public:
  7.         CFileDialogEx(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
  8.                 LPCTSTR lpszDefExt = NULL,
  9.                 LPCTSTR lpszFileName = NULL,
  10.                 DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  11.                 LPCTSTR lpszFilter = NULL,
  12.                 CWnd* pParentWnd = NULL);

  13.         virtual ~CFileDialogEx();
  14. protected:
  15.         DECLARE_MESSAGE_MAP()
  16. };
复制代码


CFileDialogEx.cpp内容如下:
  1. #include "pch.h"
  2. #include "MFCTest.h"
  3. #include "CFileDialogEx.h"

  4. IMPLEMENT_DYNAMIC(CFileDialogEx, CFileDialog)

  5. CFileDialogEx::CFileDialogEx(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
  6.         DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd):
  7.         CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
  8. {
  9.        

  10. }

  11. CFileDialogEx::~CFileDialogEx(){}
复制代码


MFCTestDlg.cpp中相关代码如下:
  1. void CMFCTestDlg::OnBnClickedButton1()
  2. {
  3.         // TODO: 在此添加控件通知处理程序代码
  4.         CFileDialogEx fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT | OFN_ENABLETEMPLATE, _T("Text Files (*.txt)|*.txt|WinRar Files(*.rar)|*.rar|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||"));
  5.        
  6.         if (fileDlg.DoModal() == IDOK) {
  7.                 POSITION pos = fileDlg.GetStartPosition();
  8.                 while (pos != NULL) {
  9.                         CString strPATH = fileDlg.GetNextPathName(pos);
  10.                         MessageBox(strPATH);
  11.                 }
  12.         }
  13.        
  14. }
复制代码


编译时报错如下:
  1. 错误        LNK2001        无法解析的外部符号 "protected: virtual struct AFX_MSGMAP const * __cdecl CFileDialogEx::GetMessageMap(void)const " (?GetMessageMap@CFileDialogEx@@MEBAPEBUAFX_MSGMAP@@XZ)
复制代码

请问错误原因是什么?如何解决,谢谢!
Snipaste_2022-06-06_01-59-59.png




上一篇:求助,字符串编辑正常,控制台无输出。。。
下一篇:求助:OK不是对话框的成员
39_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-6-12 04:22:15 | 显示全部楼层
没人解答,自已顶上去!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 11:20

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表