GSR项目总结-VC相关

Posted 轩辕泪1020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GSR项目总结-VC相关相关的知识,希望对你有一定的参考价值。

0. 摘要

1. 操作数据库

师弟把东西写了一个模块,和项目合并的时候出现了错误如下:
- 将Excel操作的类直接导入到工程,不能识别。参考:https://blog.csdn.net/phenixyf/article/details/51149811 |解决办法:按照参考重新添加一遍,觉着应该是工程内部文件需要更改。这个就不懂了(哎!不懂的这么多啊!)
- LNK1107 错误,无法链接.dll文件,在添加附加依赖项时将.lib写成了.dll,这个其实也不懂。(哎,哎,哎!你啥都不懂,你搞毛软件?将就着搞呗,谁让人家是新工科呢!)

2. 文件操作相关

2.1 判断文件是否存在。

参考https://blog.csdn.net/u012494876/article/details/51204615 (大神你这样显摆真的好吗?哎,就拿你的成果默默码代码吧!)。下面是你的大道流GetFileAttributes:

// 判断文件是否存在
BOOL IsFileExist(const CString& csFile)

    DWORD dwAttrib = GetFileAttributes(csFile);
    return INVALID_FILE_ATTRIBUTES != dwAttrib && 0 == (dwAttrib & FILE_ATTRIBUTE_DIRECTORY);

// 判断文件夹是否存在
BOOL IsDirExist(const CString & csDir)

    DWORD dwAttrib = GetFileAttributes(csDir);
    return INVALID_FILE_ATTRIBUTES != dwAttrib && 0 != (dwAttrib & FILE_ATTRIBUTE_DIRECTORY);

// 判断文件或文件夹是否存在
BOOL IsPathExist(const CString & csPath)

    DWORD dwAttrib = GetFileAttributes(csPath);
    return INVALID_FILE_ATTRIBUTES != dwAttrib;


// 变变变变变种(听说会更快一点),见备注1
BOOL IsPathExist(const CString & csPath)

    WIN32_FILE_ATTRIBUTE_DATA attrs =  0 ;
    return 0 != GetFileAttributesEx(csPath, GetFileExInfoStandard, &attrs);

备注1:https://blog.csdn.net/dragoo1/article/details/44492239

2.2 文件操作对话框

这个用来不下10遍了,就是不愿意记下来!
参考:http://www.jizhuomi.com/school/c/166.html

2.3 MessageBox的用法

这个……,哼,谁能记住这么多!
参考:https://blog.csdn.net/holybin/article/details/28403109

3. 多线程操作

这个地方主要是为了实现一个等待对话框,这个对话框可以是有进度的,也可以是无进度的。

3.1 多线程间的通讯以及等待对话框

参考:https://blog.csdn.net/qq61394323/article/details/25334293

3.2 SendMessage(),PostMessage(),PostThreadMessage ()使用

参考:https://blog.csdn.net/HolaMirai/article/details/46346091

3.3 出现的问题与总结

  • possMessage第一个参数句柄需要传输准确,在实验利用GetItemDlg函数获取数据库窗口时,发现并不能得到,具体原因未知(哎哎!你就不追究了?)。自己的解决办法是将窗口的句柄作为参数传到另一个线程(好吧,你投机取巧了!),最后的结果还是可以的。windows消息机制(MFC)
  • 在纠结上一个问题时,在调试的情况下,尝试一下代码,发现了问题,具体原因没有去追究(啥时候你能改了这个毛病啊)。

在另外一个线程中执行以下操作,发现并不能实施,具体原因还不知道。

    m_hMainDlgWnd = AfxGetApp()->m_pMainWnd->m_hWnd;
    CWnd * pWnd = NULL;
    pWnd->Attach(m_hMainDlgWnd);
    pWnd->SetWindowTextA(_T("See me!!"));

4.出现的错误

4.1 error C2872 “IPicture” 不明确的符号

这个错误是由于使用Using namespace EXCEL造成的(第一次遇到命名空间的问题!哎,我好像提升了,但是怎么解决呢?)
解决方法:https://bbs.csdn.net/topics/240047506
在使用包含Using namespace EXCEL 的头文件前,先包含PictureEx.h,这个还是不行啊!

4.2 在使用自己定义的CStatic控件时的出错

4.2.1 Invalid(true)不好使

解决办法,使用UpdateWindows解决了。

4.2.2 CStaticBK–>SetValue不显示

这个BUG就更奇怪了,如果前面跟一个MessageBox,那么就不显示,如果没有MessageBox就显示正常。
感觉这个应该是CStatic自绘造成的问题。在自绘中的Invalide(TRUE);后面添加UpdateWindow();解决问题。

4.3 Expression Incorrect format specifier 0

转义字符出错,”%”号的正确输出方法是为”%%”

4.4 Debug Assertion Failed! File:afxwin1.inl Line:639

High-speed Charting Control–MFC绘制图表(折线图、饼图、柱形图)控件
嗯,这个是推广知识。

以上是关于GSR项目总结-VC相关的主要内容,如果未能解决你的问题,请参考以下文章

@即将读研的师弟师妹们!

总结系列理工科毕业程序设计(视频图像,仿真,语音处理)matlab/c合集

工科硕士毕业论文相关要求

VC++ 线程同步 总结

GTSGCK,GSR全称

VC输出word——读取xml模板并存储为多页(加入分页符)