c++
相爱相随
这个作者很懒,什么都没留下…
展开
-
四种强制类型转换的总结
原文连接:http://blog.csdn.net/jinzhilong580231/article/details/6774985 详解const_casthttp://blog.csdn.net/jinzhilong580231/article/details转载 2011-10-13 17:04:34 · 323 阅读 · 0 评论 -
windows文件的常规读写
1、创建隐藏属性的临时文件,且文件被关闭时会自动删除2、判断访问的文件类型(文件、磁盘、管道等)3、文件的随机读写操作4、手动将写入高速缓存中的数据,刷新到磁盘5、动态调整文件的大小6、获取文件的逻辑大小或物理大小 //创建一个文件test.txt(隐藏的临时文件,且文件关闭时会被系统自动删除) HANDLE hFile = CreateFile( TEXT("C:\\t原创 2014-01-28 23:28:07 · 973 阅读 · 0 评论 -
关于CString的GetBuffer 和 ReleaseBuffe .
MFC工程中经常用到CString对象,方便字符串的原创 2014-08-18 15:05:46 · 959 阅读 · 1 评论 -
MFC的CListCtrl改造给虚拟列表使用
class CVirtualListCtrl : public CListCtrl{ DECLARE_DYNAMIC(CVirtualListCtrl)public: CVirtualListCtrl(); virtual ~CVirtualListCtrl(); virtual int UpdateItem(LV_ITEM& rItem) = 0;原创 2014-11-29 08:18:40 · 1917 阅读 · 3 评论 -
C++使用ADO技术实现Excel文件的读写操作
1、C++如何使用ADO(如何生成连接字符串)http://blog.csdn.net/asanscape/article/details/6084600 错误处理:1、操作必须使用一个可更新的查询 当前记录集不支持更新http://blog.csdn.net/testcs_dn/article/details/25500973 案例:1、打开Exc原创 2015-01-22 18:27:47 · 2896 阅读 · 0 评论 -
如何将ffmpeg移植到Android平台
编译带h264编码器的ffmepg库在Android4.6平台上运行,主要步骤如下:1、下载ffmpeg源码(我使用的2.7版本)2、下载h264编码器3、编译h264编码器静态库(build_h264.sh)export NDK=/home/juhaowangluo/ndk/android-ndk-r10dexport PREBUILT=$NDK/toolchains/arm-原创 2015-07-28 11:29:06 · 733 阅读 · 0 评论 -
YUY2转RGB(或BGR)
//YUY2视频转化RGB格式inline void YUY2_RGB(BYTE *YUY2buff,BYTE *RGBbuff,int dwSize) { //B = 1.164(Y - 16) + 2.018(U - 128) //G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128) /原创 2016-03-30 13:14:21 · 5103 阅读 · 0 评论 -
VS2017 栈溢出异常:test dword ptr [eax],eax ; probe page.
最近在vs2017下开发时,程序编译正常,但是总是报栈溢出异常;经过多次检查代码和测试,发现栈空间太小导致异常;【发现问题前】1、创建线程时,使用的默认栈大小2、线程内函数调用,分配了5MB内存(栈上分配)3、调用DownLoadFile函数时,开辟栈空间失败,内存溢出发生异常了【问题分析】以前版本的VS中,创建线程时不指定栈大小,使用系统默认配置,不会出现问题;但是,vs2017中就要注意了,临...原创 2018-04-20 14:20:45 · 668 阅读 · 0 评论 -
windows路由添加
摘要:https://docs.microsoft.com/zh-cn/windows/desktop/api/ipmib/ns-ipmib-_mib_ipforwardrow涉及的API:CreateIpForwardEntry // 添加路由到路由表中GetIpForwardTable // 访问路由表GetIpInterfaceEntry // 获取指定网卡接口信息...原创 2018-12-12 11:11:10 · 1048 阅读 · 0 评论 -
Window进程内多线程同步
处于同一进程内的多线程数据同步有一下几种方式:1、InterLock系列函数主要用于单个资源的同步2、旋转锁单CPU的机器,不要使用自旋锁,会出现死锁的状态。(因为当前线程一直在锁内旋转,单个CPU是没有机会切换到另一个线程中进行执行)3、volatile关键字如果没有可用的同步方式时,可以使用volatile进行同步。(这种方式很劣势,当两个线程不在同一优先级上,原创 2014-01-24 17:10:47 · 674 阅读 · 0 评论 -
WaitableTimer与SetTimer的区别
在Window中常用的是SetTimer计时器,又叫用户计时器(大概是工作在用户模式下吧),大家都很熟悉。它与窗口有关,会产生WM_TIMER消息,优先级最低等等特性。上两节介绍了一个内核模式的可等待计时器,我们来比较一下他们的却别和联系。区别:SetTimer计时器:1. 需要使用窗口界面,从而消耗更多的资源 2. 会产原创 2014-01-26 01:28:14 · 866 阅读 · 0 评论 -
内核对象--可等待计时器WaitableTimer(一)
可等待计时器内核对象:它会在某个指定的时间触发,或每隔一段时间触发一次。使用步骤:1、创建内核对象HANDLE CreateWaitableTimer(PSECURITY_ATTRIBUTESpsa, BOOL bManualReset, PCTSTRpszName);2、设置触发计时器的触发条件如果想要触发计时器,必须调用SetWaitableTimer函数。BO原创 2014-01-25 21:07:25 · 911 阅读 · 0 评论 -
volatile+类型限定符详细讲解
请看原文: http://blog.csdn.net/jinzhilong580231/article/details/6779480 案例:线程中volatile变量http://blog.csdn.net/sanshui/article/details原创 2011-10-13 16:37:45 · 385 阅读 · 0 评论 -
预处理实现条件编译
1.请写出输出结果? #if MAC_IF printf("MAC_IF = 1\n");#elif MAC_IF printf("MAC_IF = 2\n");#else printf("MAC_IF not defined!");#en原创 2011-10-09 11:37:33 · 473 阅读 · 0 评论 -
MFC中使用控制台输出Debug信息
1. 改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色 2原创 2013-03-07 12:42:10 · 815 阅读 · 0 评论 -
内存映射
首先,进程A 创建一个命名内存映射对象其次,进程B 通过名称来访问进程A创建的内存映射对象上面操作都成功后就可以进行通信,通信的同步处理可以用命名的事件、信号量等内核对象来实现 //创建内存映射对象 static HANDLE hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE原创 2013-04-01 10:38:05 · 587 阅读 · 0 评论 -
打印调试信息
Debug模式:Debug模式下使用TRACE宏打印日志消息,我们可以在OutPut窗口中看到打印的日志信息。 Release模式:此时,使用TRACE宏将是无效,此时可以使用OutputDebugString函数将日志信息打印到另外一个调试窗口中(Dbgview.exe)。Dbgview.exe是专门用来接收Release下的日志打印。 其他方法也可以,比如写log文件;原创 2013-07-16 16:30:37 · 534 阅读 · 0 评论 -
linux下的ldd
转自:http://www.eifr.com/article.php?id=387 1、首先ldd不是一个可执行程序,而只是一个shell脚本2、ldd 显示依赖库,ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下: LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、转载 2013-08-26 13:09:58 · 541 阅读 · 0 评论 -
利用MAP文件定位程序崩溃位置
作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!“该程序执行了非法操作,即将关闭。请与你的软件供应商联系。”,呵呵,这句 M$ 的“名言”,恐怕就是程序员最担心见到的东西了。有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了;有时自己在编写和测试的过程中就莫名其妙地遇到了非法转载 2013-08-15 16:59:37 · 781 阅读 · 0 评论 -
16进制字符串转16进制整数
案例:客户端收到传递的时间(9:30) 用整数表示为 0930 ,而另一个接口的时间表示为0x091E(9:30); 为了将9:30的十进制(0930)表示转为16进制(0x09iE)表示,我的做法是先将其转换为16进制字符串,再将字符串转为整数。//转为16进制整数(例如:0930 -> 0x091E)short CMockShim::int2hex(int原创 2013-08-29 15:33:32 · 1421 阅读 · 0 评论 -
VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因
一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃。这里可以通过生成cod文件,即机器码这一文件,具体定位转载 2013-10-24 10:11:23 · 1313 阅读 · 2 评论 -
使用fork(), pipe() 实现linux的popen, pclose功能
为什么要自己实现一个popen\pclose函数功能呢?因为,有时系统popen打开的文件,有时会出现pclose时一直阻塞着,导致整个应用程序无法正常结束,此时使用我们自己实现的popen,则可以获得进程ID,然后通过kill该进程ID来结束popen开启的文件;FILE* Popen(const char* commandstr, const char* mode){ pi...原创 2019-03-13 15:16:08 · 642 阅读 · 0 评论