C/C++
王忠海
这个作者很懒,什么都没留下…
展开
-
学习QT记录笔记
为了便于Qt的学习,特做了以下记录:在线安装器下载地址:http://download.qt.io/official_releases/online_installers/记录下Qt各版本的下载地址,便于后期查找及下载1. 所有Qt版本下载地址:http://download.qt.io/archive/qt/2. 所有Qt Creator下载地址:http://download.qt.io/archive/qtcreator/3. 所有Qt VS开发插件下载地址:htt原创 2020-08-11 17:37:35 · 242 阅读 · 0 评论 -
修改MFC控件、按钮、背景和字体的颜色
通过MFC的类向导,添加WM_CTLCOLOR、WM_PAINT、WM_DRAWITEM消息,对应的函数分别如下:1、控件颜色 HBRUSH CMain::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)可以设置编辑框、静态文本等的背景颜色,同时也可以设置文本颜色HBRUSH CMain::OnCtlColor(CDC* pDC, CWnd...原创 2020-08-17 12:16:38 · 1848 阅读 · 1 评论 -
fatal error C1189: #error : WINDOWS.H already included. MFC apps mus...
这种情况本质上就是对windows.h头文件重复引用,解决的办法,如果能不引用此头文件当然就不要引用,如果非得引用,或者是引用其他头文件导致的间接引用windows.h,那么不要在stdafx.h文件里面引用,一般可以解决。或者可使用如下代码:所以使用如下代码:#ifdef _WINDOWS_#undef _WINDOWS_#endif或者#ifndef #转载 2017-08-05 14:04:45 · 3225 阅读 · 0 评论 -
MediaInfo获取视频文件时长
一.导入相关项#include "MediaInfoDLL.h" using namespace MediaInfoDLL;void CTestMediaInfoDlg::OnButton1() {// TODO: Add your control notification handler code here// CString String m_s原创 2017-08-03 18:13:51 · 3261 阅读 · 0 评论 -
VC使用GSOAP调用C#WCF服务
首先声明:文章中的内容大都来源于网络,做的过程遇到了不少问题,所以想写下此文,记录一个完整的过程,以飨后人。gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集合了SSL功能。下载地址:http://sourceforge.net/projects/gsoap2转载 2017-06-07 09:46:22 · 624 阅读 · 0 评论 -
MFC选项卡的实现
方案一在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class Wizard来为Tab Control控件创建一个控件变量,该变量是CTabCtrl类的,再为其他控件也创建相应的控件类。 在主对话框的初始函数中CProperty1Dlg::OnInitDialog()加入如下代码:转载 2017-03-16 15:05:01 · 3397 阅读 · 0 评论 -
MFC窗口支持文件拖入
修改对话框属性为Accept Files或者在初始化时直接通过函数DragAcceptFiles()使得窗口支持文件拖曳然后,增加对话框窗口的WM_DROPFILES消息响应函数单个文件:[cpp] view plain copyOnDropFiles(HDROP hDropInfo) { char * pFile转载 2017-03-16 14:50:22 · 745 阅读 · 0 评论 -
MFC窗口最小化到托盘
把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了。绘制图标以及确定图标所传送消息的函数只有一个,那就是 WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid ); 这个函数负责向系统传递消息,以添加、修改或删除托盘区的图标。它的转载 2017-03-16 14:48:28 · 307 阅读 · 0 评论 -
MediaInfo参数大全
用C#调用MediaInfo,最麻烦的就是传递参数不知道是什么,非得先把所有参数输入来查找。以下都是通过Get(StreamKind.***,0,i++,InfoKind.Name)获得的.获得方法参见。通过视频、音频、或图像测试。1.视频参数Video parameter参数:Count 值:201参数:Status 值:参数:StreamCount 值转载 2017-03-15 10:53:35 · 1401 阅读 · 0 评论 -
gSoap使用方法
1. 从WSDL得到头文件wsdl2h -o ayandy.h -n ay http://www.ayandy.com/Service.asmx?WSDL2. 从头文件得到存根(Stub)源文件soapcpp2 -i -C -x ayandy.h -ID:\gsoap-2.7\gsoap\import命令选项注释:-i 直接使用C++包装类-x 不要转载 2015-04-10 10:05:14 · 563 阅读 · 0 评论 -
C++定时器
1.1 用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIM转载 2017-10-24 13:46:39 · 919 阅读 · 0 评论 -
如何分析64位系统上32位程序的dump
随着硬件越来越便宜,为了能够识别大于4G的内存,越来越多的电脑使用64位的操作系统,然后现在大多数的软件还是32位的,64位的系统使用wow64来帮助运行32位的程序。如果一个64位系统上,32位程序出现crash,得到一个dump文件,如果不进行转换是不能直接用windbg分析的。下面介绍如何处理这样一个dump文件。首先,我们使用windbg打开dump文件。这时候如果直接输入!ana转载 2017-12-23 11:39:25 · 675 阅读 · 0 评论 -
使用头文件winbase.h的错误
今天想学习下完成端口的使用,需要获取CPU的个数,使用C++返回通过GetSystemInfo等方式获取本机系统的CPU数,添加#include <winbase.h>头文件然后进行编译的时候出现了一大堆的错误,错误如下:1>c:\program files (x86)\windows kits\8.0\include\um\minwinbase.h(46): erro...转载 2019-05-08 13:39:03 · 3015 阅读 · 0 评论 -
error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]
error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面) 来源:http://houjixin.blog.163.com/blog/static/356284102009112395049370/ DirectShow 2009-12-23 09:50:49 阅读311 评...转载 2019-03-31 17:56:49 · 1178 阅读 · 0 评论 -
error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)
借助邹宇华的双目标定程序的时候遇到了问题:“error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)”(但在另一台电脑却可以运行)。错误结果如图:下面转载了http://blog.csdn.net/u013360881/article/details/51487895的解决方法:跑程序遇见这个问题,查看错误根源说是PVOID64未定义,查找资料原因...转载 2019-03-18 18:12:01 · 6060 阅读 · 0 评论 -
编译opengl编程指南第八版示例代码通过
https://www.cnblogs.com/zxh1210603696/p/4556879.html转载 2019-03-19 17:30:27 · 274 阅读 · 0 评论 -
vc6.0 Release 版本调试
通过以下两个步骤:第1步: a、project->Settings 选择release版本 b、c/c++选项卡设置: category:General Optimizations:Disable(Debug) ...原创 2018-12-11 13:40:40 · 214 阅读 · 0 评论 -
error C3163: “_vsnprintf”: 属性与以前的声明不一致
2005项目升级为2008,出现以上错误。解决办法:找到程序中定义vsnprintf的宏(可能在某个被包含的头文件中),这里出现的问题的宏原来定义为#define vsnprintf _vsnprintf。解决办法就是将其根据版本来决定是否注释,原因是VC2008 已经定义了。修改成如下的样子:#if (_MSC_VER != 1500) // 只针对VC++ 2008注释下...转载 2018-09-20 13:05:09 · 459 阅读 · 0 评论 -
C++笔记
-------------------------查找代码和相关主题http://www.oschina.net/code/snippet_12_1001 1:指针引用区别。2:将构造函数或者析构函数声明为protect会阻止该类被使用非new或者delete的方式调用。构造函数省名public,析构函数声明private,即可防止外部使用delete的方式删除对象。如果使用private会组织...转载 2018-05-04 18:03:18 · 461 阅读 · 0 评论 -
C++ 只允许一个进程存在
DWORD CheckProIsExistingByName(LPCTSTR ProName){CString strExeName;char strProName[MAX_PATH] = {0};GetModuleFileName(NULL,strProName, MAX_PATH);strExeName.Format("%s", strProName);int Inde原创 2018-02-05 10:24:25 · 893 阅读 · 0 评论 -
linux WebService (gsoap)
一.系统环境 2二.gSOAP的简要使用例子 2三.图示说明 6四.要注意的问题 6五.参考文档 7六.备注 7一.系统环境linux操作系统kernel2.4.2,安装gsoap2.6到目录/usr/local/gsoap二.gSOAP的简要使用例子下面是一个简单的例子,实现一个加法运算的WebService,具体功能是cli端输入num1和num2,se转载 2016-08-08 14:24:15 · 581 阅读 · 0 评论 -
gsoap搭建WebService服务
WebService、soap、gsoap基本概念WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件。本质上就是要以标准的形式实现企业内外各个不同服务系统之间的互调和集成。soap概念:简单对象访问协议,是一种轻量的、简单的、基于 XML 的协议,它被设计成在WEB 上交换结构化的和固化的信息。从这里的概转载 2016-08-08 14:23:01 · 602 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __imp__closesocket@4解决
环境:Visual C++ 6.0问题:连接错误。描述:Linking...NetSrv.obj : error LNK2001: unresolvedexternal symbol __imp__closesocket@4NetSrv.obj : error LNK2001: unresolvedexternal symbol __imp__inet_nt转载 2016-05-24 18:38:14 · 7596 阅读 · 0 评论 -
使用libXML2编程
3. 简单xml操作例子了解以上基本知识之后,就可以进行一些简单的xml操作了。当然,还没有涉及到内码转换(使得xml中可以处理中文)、xpath等较复杂的操作。3.1 创建xml文档有了上面的基础,创建一个xml文档显得非常简单,其流程如下:l 用xmlNewDoc函数创建一个文档指针doc;l 用xmlNewNode函数创建一转载 2014-08-22 08:27:32 · 529 阅读 · 0 评论 -
CFileDialog使用详解
char szPath[MAX_PATH];GetCurrentDirectory(MAX_PATH, szPath);CFileDialog FileDialog(TRUE,"xml","CentrumAdmin.xml",OFN_ALLOWMULTISELECT |OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"播出节目单(*.xml原创 2014-08-22 08:31:03 · 1476 阅读 · 0 评论 -
关于gSoap应用中用的字符转换
//宽字节转为单字节 wstring->stringstd::string ws2s(const std::wstring& ws){std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";setlocale(LC_ALL, "chs");const wchar_t* _Source = ws.c原创 2015-03-20 17:24:55 · 588 阅读 · 0 评论 -
C++的字符串分割函数
C++的字符串没有分割函数,因此需要自己写方便使用。而受到开发工具的影响,有很多用起来比较麻烦啦,下面这个比较不错奥。用STL进行字符串的分割 涉及到string类的两个函数find和substr:1、find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次转载 2015-06-26 20:09:01 · 502 阅读 · 0 评论 -
VS2008 VC++ XML操作
VS2008 VC++ XML操作 2011-12-28 11:18:38| 分类: 默认分类|举报|字号 订阅 1. msxmlchs.msi的安装 安装msxml 4.0 sp2时要注意不要用默认安装,要选择自定义安装(全部安装)才能选择安装SDK,若没有选择安装SDk会发现安装完成后安装目录下什么也没有,而选择转载 2014-08-20 14:25:43 · 1351 阅读 · 0 评论 -
Win7下VC++6.0打开文件报错导致其崩溃的解决办法
在Windows7下安装Visual C++ 6.0后,遇到一个致命的问题打开文件的时候出现异常而导致VC6崩溃。如下图所示: 微软针对这个问题发布了一个补丁,原补丁是未编译的VC++6工程(FileTool),大家可以手动在VC++6.0环境下编译一下。为了方便使用,我在这转载 2014-09-02 14:20:57 · 5254 阅读 · 1 评论 -
控件CCtrlList的虚拟列表使用方法--详解
1.将所有者数据原创 2014-07-31 09:02:36 · 928 阅读 · 0 评论 -
CListCtrl使用技巧
1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”转载 2014-07-29 13:09:52 · 489 阅读 · 0 评论 -
H264 获取SPS与PPS(附源码)
在用Android手机进行h264硬编码的时候如果要进行视频流的实时传输与播放,就需要知道视频流的Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)。今天算是看明白如何获取SPS和PPS,在这里记录下来,希望有需要的朋友可以在这里获取到一些些的帮助。首先说一下大前提,我设置的视频录制参数为:mMediaRec转载 2014-07-18 08:51:59 · 517 阅读 · 0 评论 -
VC中BSTR、Char*、CString和CComBSTR类型的转换
若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:char* p = "This is a test"; 或CString theString = p;theString.format("%s", p);theString = p;2、CString转换成char*若将CString类转换成char*(LPST转载 2014-07-07 09:46:09 · 641 阅读 · 0 评论 -
C++实现CString和string的互相转换
CString->std::string 例子: CString strMfc=“test“; std::string strStl; strStl=strMfc.GetBuffer(0);unicode情形下: CStringW strw = _T("test"); CStringA stra(strw.GetBuffer(0));转载 2014-08-22 08:24:15 · 442 阅读 · 0 评论 -
CListCtrl 选中 和 取消选中
//取消选择,并且高亮度显示取消this->m_ListCtrl.SetItemState(iCurSelectIndex, 0,-1);特别注意,这里的 -1 是取消高亮度显示,0表示取消选择。//选中,并且高亮度显示//Selectthis->m_ListCtrl.SetItemState(iLineNo,LVIS_SELECTED|LVIS_FOC转载 2014-07-31 15:14:43 · 4271 阅读 · 0 评论 -
MFC CMap
映射表类(CMap)是MFC集合类中的一个模板类,也称作为“字典”。CMap是把唯一关键码映射到值的字典收集类,使用CMap可以构造一个关键字和元素值映射的集合类。一旦在映射中插入了一个关键码值对(元素),就可以使用这些关键码,有效地获取或者删除对元素。同样,也可以反复使用映射中的所有元素。 就像一种只有两列的表格,一列是关键字,一列是数据项,它们是一一对应的。关键字是唯一的,给出一个关键字,映射转载 2016-05-24 14:29:42 · 1086 阅读 · 0 评论 -
C,C++宏中#与##的讲解
文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。 char *pChar = "hello";转载 2016-05-24 13:53:21 · 187 阅读 · 0 评论 -
VC6.0创建DLL动态链接库四大要素
要成功地编辑,编译和链接一个动态链接库,应该包括以下要素:建立工程文件,使用输出说明,应用初始化函数和编制函数功能。1. 建立工程文件在选取类型的时候要选择“Dynamic __Link Library”或者“MFC AppWizard(DLL)”。2.使用输出说明 对DLL要输出的函数或者变量必须进行明确的说明。方法有两种,第一种是使用扩展名为def的模块定义文件转载 2016-04-08 17:40:29 · 2197 阅读 · 0 评论 -
VC++ 6.0如何创建与调用动态链接库
1.静态链接库与动态链接库区别: 静态链接库:lib中的指令被直接包含在最终生成的EXE文件中。 动态链接库:dll不必被包含在最终的EXE中,EXE文件执行时可以动态地引用和卸载DLL文件。 同时,静态链接库中不能再包含其他的动态链接库或静态库,而动态链接库中可以包含其他的动态或静态库。 2.VC++支持的DLL: DLL的编制与具体的编程语言及转载 2016-04-08 16:00:47 · 11302 阅读 · 1 评论 -
VC6.0如何创建以及调用动态链接库具体实例
这边博客主要介绍技术的应用而不在细究原理。因为公司项目着急,出结果要紧,并且咱也不是专注搞研究的,所以,基本懂了原理后,直接上手工作,搞出demo来最好。至于公司工作情况,今天暂且略过,当然也不是一两句能够表达清楚的。后面会有相应的工作总结,敬请期待……现在,废话少说,直奔主题——VC6.0中创建动态链接库。作为客户与后台的中介,为了更好的调节两方的关系,我明智滴选择了we转载 2016-04-08 15:56:33 · 4590 阅读 · 1 评论