![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++程序开发
文章平均质量分 83
allenjiao
深耕计算机图形学、BIM数字孪生、大数据可视化、物联网+GIS等领域,拥有多项软件著作权和发明专利。
展开
-
flv.js与video.js实现播放视频直播
1.准备1.下载 nginx(可以任意使用一个web服务器)2.下载 livego3.下载 OBS(直播推流直播工具)4.引用 flv.js5.引用 video.js( ̄▽ ̄)/ 以上软件请大家自行解压或安装2.环境配置首先运行livego (进入可执行文件文件夹 cmd黑窗口输入 livego, 记得靠谱.livego.json配置文件)运行livego效...原创 2020-01-09 10:33:16 · 3685 阅读 · 0 评论 -
INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString
<br />在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:<br /> 一.将信息写入.INI文件中.<br /> 1.所用的WINAPI函数原型为: <br />BOOL WritePrivateProfileString(<br />LPCTSTR lpAppName,<br />LPCTSTR lpKeyName,<br />LPCTSTR lpString,<br />LPCTSTR lpFil转载 2011-03-24 14:36:00 · 746 阅读 · 0 评论 -
INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString
<br />在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:<br /> 一.将信息写入.INI文件中.<br /> 1.所用的WINAPI函数原型为: <br />BOOL WritePrivateProfileString(<br />LPCTSTR lpAppName,<br />LPCTSTR lpKeyName,<br />LPCTSTR lpString,<br />LPCTSTR lpFil转载 2011-03-24 14:36:00 · 817 阅读 · 0 评论 -
INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString
<br />在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:<br /> 一.将信息写入.INI文件中.<br /> 1.所用的WINAPI函数原型为: <br />BOOL WritePrivateProfileString(<br />LPCTSTR lpAppName,<br />LPCTSTR lpKeyName,<br />LPCTSTR lpString,<br />LPCTSTR lpFil转载 2011-03-24 14:30:00 · 808 阅读 · 0 评论 -
CWnd指针和HWnd
<br />HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 <br />CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。 <br /><br />由HWnd得到CWnd*:<br />CWnd wnd;<br />HWnd hWnd;<br />wnd.Attach(hWnd);<br />通常一个窗口资源已经和一个CWnd类的对象关联起来的,由于一原创 2011-04-02 18:05:00 · 856 阅读 · 0 评论 -
时间的函数,sleep,clock,gettickcount,QueryPerformanceCounter
<br />介绍<br /> 我 们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都 会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编译器和操作系统为我们提供了很多时间 函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。现在我就介绍windows下的几种常用时间函数。<br />1:Sleep函数转载 2011-05-23 09:12:00 · 1494 阅读 · 0 评论 -
mapinfo 应用于win7 64位机
<br />1.在xp系统下安装mapx.v5.02.19<br />2.把安装后的目录的所以文件拷贝到win7的机子上,<br />3.对这些com组件进行注册,逐个进行注册<br />MAPX50.DLL<br />MapXADODS.DLL<br />MapXDAODS.DLL<br />MapXRDODS.DLL<br />mapxstate.DLL<br />MODBCDataset.DLL<br />MOCIDataset50.DLL<br />mxmldataset.DLL<br />MSaf原创 2011-04-21 17:37:00 · 10051 阅读 · 2 评论 -
VS2003在vista/win7下搜索会出现僵死
<br />1. VS2003在vista下搜索关键词的时候会出现僵死的问题的解决方案:<br /> VS2003快捷方式右击选中属性->兼容性页签 : 选中用兼容模式运行这个程序,下拉框中用windows xp2<br />设置 : 选中 “禁用视觉主题”,“禁用桌面元素”两项。<br /> 经过以上设置后VS2003重新启动,搜索即可正常使用。<br />2. VS2003在win7下搜索关键词的时候出现僵死的问题的解决方案:<br /> VS2003快捷方式右击选中属性-转载 2011-04-22 13:37:00 · 4517 阅读 · 3 评论 -
c++创建文件夹多级目录
#include link imagehlp.lib BOOL MakeSureDirectoryPathExists( PCSTR DirPath ); DirPath must end with a backslash (/) character for example: MakeSureDirectoryPathExists(转载 2011-06-29 17:22:00 · 1602 阅读 · 0 评论 -
timeSetEvent timeKillEvent 实现较精确定时
1、MOUDLE.abs 文件 Public lTimeID As Integer Public lTimeID2 As Integer Public Declare Function QueryPerformanceCounter Lib "kernel32" (lpPe转载 2011-07-14 14:46:34 · 3571 阅读 · 0 评论 -
Turn on/off monitor
// Turn off monitor SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2); // Turn on monitor// SendMessage(HWND_BRO原创 2011-08-04 14:53:11 · 1256 阅读 · 0 评论 -
R6034错误,C Runtime Error
这是我转的一篇非常全的帖子 能查到的解决方法都在里面有提及: 我是使用 stdafx.h加入这句code #pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='X86'转载 2013-12-27 11:44:13 · 2168 阅读 · 0 评论 -
重构理论及实践——用工厂模式重构c++后台代码
1、背景 代码重构和设计模式(其实没什么关联,我硬给拉到了一起),两个似乎都是比较玄的东西。很多时候,抱着gof(写书的四人组)那本经典的《设计模式》啃个两遍下来,便觉代码之道已烂熟于心,coding中自可挥洒自如了;然而,到了实际的项目中,该怎么码还是怎么码——你问我用什么模式?咳咳,pm的需求我都忙不过来了,管他什么模式不模式的啊。至于代码重构么,功能实现出来就行了,你说代码多、转载 2016-06-30 16:11:30 · 2082 阅读 · 0 评论 -
C++11中智能指针的原理、使用、实现
目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存...转载 2018-10-19 16:45:28 · 337 阅读 · 0 评论 -
如何有效地使用对话框
<br />如何在对话框中加入工具条在 OnInitDialog 中加入下面代码: BOOL CYourDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Create the toolbar. To understand the meaning of the styles used, you // can take a look at the MSDN for the Create function转载 2011-02-22 16:27:00 · 808 阅读 · 0 评论 -
c++ 守护进程程序
<br /> STARTUPINFO si; <br /> PROCESS_INFORMATION pi; //进程信息: <br /> ZeroMemory(&si, sizeof(si)); <br /> si.cb = sizeof(si); <br /> ZeroMemory(&pi, sizeof(pi)); <br /> do<br /> { <br /> //创建子进程,判断是否执行成功 <br /> if(!CreateProcess( NULL,"cmd /c转载 2011-02-22 13:57:00 · 4737 阅读 · 1 评论 -
C++的File类文件操作
语言文件系统称为流文件(Stream),正文流(正文文件),二进制流(二进制文件) 缓冲与非缓冲文件 顺序操作文件与随机操作文件 顺序文件:读/写第K个数据块之前必须读/写第1至K-1个数据块; 随机文件:可直接读/写第K个数据块; 正文文件的操作一般是顺序文件; 二进制文件的操作都是随机文件。 一、文件操作的一般过程 定义文件指针 FILE * 打开文件 fopen 对文转载 2010-05-07 21:40:00 · 1183 阅读 · 1 评论 -
VS2003 2005 试图运行项目时出错,无法启动调试。没有正确安装调试器。请运行安装程序安装或修复调试器。
其中涉及到的目录,根据不同的操作系统及vs安装目录不同而不尽相同1、在命令行中尝试重新注册mscordbi.dll(regsvr32 mscordbi.dll)文件,该文件位于(C:/Windows/Microsoft.NET/Framework/v1.1.4322请找到你本机的这个对应的目录)。2、在命令行中尝试重新注册oleaut32.dll(regsvr32 oleaut32.d转载 2010-05-15 09:05:00 · 1441 阅读 · 1 评论 -
MFC中获取命令行参数的几种方法
在MFC程序中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设执行了命令:C:/test/app.exe -1 -2方法一::GetCommandLine();将获取到 "C:/test/app.exe" -1 -2方法二for (int i=0;i{__argv[i];将依次得到C:/test/app.exe -1 -2}方法三AfxGetApp()->m_lpCmdLine;将获取到 -1 -2其他方法如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineI转载 2010-07-15 22:52:00 · 747 阅读 · 0 评论 -
华三与华为的关系
H3C是杭州华三通信技术有限公司,也被常常称为华三。H3C的前身是华为3COM(华为三康)公司,是华为与美国的3COM公司的合资公司。华为3COM公司的诞生还要和2003年华为公司与cisco公司在美国的一场官司有关,2001年IT泡沫破灭后,华为为了生存开始大力拓展海外市场如进军美国市场,由于当时cisco在数据通信的绝对领导地位,因而许多后进入这个市场的厂商产品也对cisco的产品进行了仿制,转载 2010-05-19 22:55:00 · 2181 阅读 · 0 评论 -
标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。使用标准C++的类型转换符:static_cast、dynamic_cast、re转载 2010-07-31 21:08:00 · 529 阅读 · 0 评论 -
Directshow SDK 和Windows SDK
本文描述了Directshow SDK ,Windows SDK,DirectX SDK ,VS200?之间的关系 VS2002中包含有Windows SDK 2002版(支持Windows XP及其以前的Windows 并包含有DirctX 8.1 SDK(包括DirectShow SDK)),这之后DirectX9 SDK不被包含在Windows SDK中. VS2003中包含有Windows SDK 2003版(支持Windows Server 2003及其以前的Windows)转载 2010-06-15 15:23:00 · 1720 阅读 · 0 评论 -
xvid-core1.1.2编译方法(vc6,vs2005)
对于vc6.0环境下的编译方法,偶就借花献佛了见附件,偶直接把人家给翻译好的东东拿上来。附件中的xvid-core-1.1.2是偶根据下面的操作,可以在vs2005下面编译的版本。主要是起到备忘的作用,我主要讲讲在vs2005平台上面编译xvid-core的方法,浪费了偶两个多小时,心疼ing...首先,在win平台下面nasm.exe是不可少的,这个codec有太多的asm文件需要编译了。方便起见偶放到附件里面了。下载它以后,我们需要把它放到vc的bin目录下面。在我的机器上是D:/Program Fil转载 2010-08-24 22:33:00 · 1474 阅读 · 1 评论 -
MFC命令行及CCommandLineInfo类
<br />获取命令行的方法:<br />1、GetCommandLine() 获取输入的所有信息,包括程序所在路径及参数<br />2、AfxGetApp()->m_lpCmdLine 只包含参数<br />一般情况下,获取到命令行后就可以针对命令行中的内容进行相应的处理了<br /> <br />CObject <br />└CCommandLineInfo <br />类CCommandLineInfo用于分析启动应用时的命令行参数。<br />MFC应用一般都会在它的应用对象中使用函数InitIns转载 2010-12-02 10:30:00 · 3934 阅读 · 1 评论 -
c++写入应用程序日志(Event Log )
<br />日志文件是操作系统的一部分,那么肯定有应用程序编程接口(API)来支持建立日志记录<br /> <br />实例:<br /> HANDLE h; <br /> if ((h = RegisterEventSource(NULL,TEXT("MetaLive"))) == NULL)<br /> { <br /> return FALSE;<br /> }<br /> const char* ps = "pszS1pszS2pszS3";<br /> WORD wType=EVENTLOG_E原创 2010-12-03 14:16:00 · 4025 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
<br />这个在面试或笔试的时候常问到或考到。<br />已知类String的原型为:<br />class String<br />{<br />public:<br /> String(const char *str = NULL);// 普通构造函数<br /> String(const String &other); // 拷贝构造函数<br /> ~ String(void); // 析构函数<br /> String & operate =(cons转载 2010-10-17 20:01:00 · 784 阅读 · 0 评论 -
#include 求数据类型的最值
<br />如果想获取数据类型的最大最小值等等, 可通过以下方式进行实现.<br /> <br />I.包含该头文件#include <limits><br />II.<br />long lMax=(std::numeric_limits<long>::max)(); //获取long的最大值<br />long lMax=std::numeric_limits<long>::max(); //获取long的最大值<br /> <br />long lMax=(std::numeric_limits原创 2011-01-10 15:21:00 · 634 阅读 · 0 评论 -
c++ 可变参数的使用
实例:int DealMessageLog(char * argu, ...){ va_list args; va_start(args,argu); int iBufferLen=0; char * pBufferHead=NULL; char * pTempBufferHead=NULL; char cBufferTemp[256]={0}; char cBuffer[1024]={0}; strcpy(cBufferTemp, argu); pBufferHead=cBuffer;原创 2011-01-20 11:08:00 · 640 阅读 · 0 评论 -
C++ 获取当前正在执行的函数的相关信息
<br />主要通过宏来实现:(注意,开头和结尾都是两个下划线)<br /><br />__PRETTY_FUNCTION __ 获取完整的函数头信息<br />void IPCoreConnect::IPCoreConfirmWrite(unsigned char *p, int k)<br /><br />__func__ 或 __FUNCTION__ 获取函数名<br />IPCoreConfirmWrite<br /><br />__FILE__ 获取文件的 获取源文件的相对路径和名字<br />/原创 2011-01-20 16:45:00 · 983 阅读 · 0 评论 -
VC中Ansi、Unicode、UTF8字符串之间的转换和写入文本
Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个/0结尾,常用于txt文本文件 Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的/0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicode UTF原创 2010-04-03 09:25:00 · 1139 阅读 · 0 评论