![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 71
xianjian_x
kxapiss@163.com
展开
-
在VS中编辑修改资源视图后保存时提示-cannot change standard mfc resources ,无法保存资源视图的一个解决方法
如题:在VS中编辑修改资源视图后保存时提示-cannot change standard mfc resources ,无法保存资源视图的一个解决方法通常遇到该问题时,在.rc文件开头都会有#include "afxres.rc"#include "afxprint.rc"这两个包含,原因好像是由于该处的文件是只读的,但是在资源编辑保存时却会去改动该文件,导致一直提示无法保存资源视图;其中一个解决方法,是在资源视图界面,右键鼠标,在资源包括中,查看是不是在符号头文件处的内容为 res转载 2020-08-20 16:14:11 · 559 阅读 · 0 评论 -
vc++ 使用一个字体而不用安装
这是找了很久 google搜索出来的一个比较完整的很好的解决方案。不仅有代码讲解,还有附件给出了编译好的程序和源码工程。How to Use a Font Without Installing ithttps://www.codeproject.com/Articles/42041/How-to-Use-a-Font-Without-Installing-it#addres附件不容易下载,这里我下载了放到资源里面供免费下载:https://download.csd...转载 2020-08-20 15:32:19 · 286 阅读 · 0 评论 -
WinDbg链接
MSDN文档一个简单的介绍最基本功能涉及了stack overflow 挺详细的WinDbg配置和使用基础转在WinDBG中查看函数的反汇编代码的命令在WinDBG中查看变量的命令windbg下如何使用bp对指定文件指定源码行数下断使用windbg调试release程序MSDN文档,一个简单的介绍,最基本功能涉及了Getting Started with WinDbg (User-Mo转载 2016-11-01 19:23:16 · 830 阅读 · 0 评论 -
VC++ try catch
try{} catch(…){} 以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try { BYTE* pch ; pch = ( BYTE* )00001234 ; //给予一个非法地址 *pch = 6 ; //对非法地址赋值,会造转载 2016-10-21 11:20:24 · 967 阅读 · 0 评论 -
获取窗口句柄
使用FindWindow函数获取窗口句柄使用EnumWindows和EnumChildWindows函数使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。#include <Windows.h>#include <std转载 2016-09-06 14:36:13 · 1640 阅读 · 0 评论 -
桌面录音
公司做一个项目,需要把 windows 扬声器的声音捕捉下来,这个可以参考MSDN文档,上面有示例程序: Loopback RecordingCapturing a Stream这程序并不完整,还需要做一些修改才行:下面是我 调试通过的代码:#include <Mmdeviceapi.h>#include <Audioclient.h>//----------------------------原创 2016-08-14 16:13:02 · 2791 阅读 · 4 评论 -
一个由于锁的作用域导致core dump的问题的解决
如果没定义局部变量 lock 那么生存周期几乎为0请看如下代码:void CCommParams::setParams( const char * authUser, const char * authPsw, const char * securityLevel,转载 2016-08-14 12:05:31 · 1774 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout << "Do something i转载 2016-08-14 10:12:37 · 478 阅读 · 0 评论 -
FFmpeg视频编解码库,无法解析的外部信号
在编译FFmpeg相关项目时,可能会出现: ``` error LNK2019: 无法解析的外部符号 “int __cdecl avpicture_fill(struct AVPicture ,unsigned char const ,enum AVPixelFormat,int,int)” (?avpicture_fill@@YAHPAUAVPicture@@PBEW4AVPixelForma转载 2016-09-01 18:04:26 · 2236 阅读 · 0 评论 -
音频相关
音频帧概念详解AACMP3示例代码附上我写的一个mp3 播放器音频帧概念详解 正常人听觉的频率范围大约在20Hz~20kHz之间。 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。 常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.原创 2016-09-01 14:26:12 · 1144 阅读 · 0 评论 -
boost::condition_variable、boost::time_wait使用方法
boost 的线程库不能强行终止,所以通过 time_wait 可以让其自然的结束。// BoostTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream> #include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include转载 2016-09-01 16:38:33 · 4394 阅读 · 0 评论 -
boost多线程库使用指南
基本使用用函数或类实例创建线程 boostthreadthread_group 使用Boost线程库学习笔记yield 放弃时间片 join 等待线程结束使资源是线程安全的保证给mutex加解锁有多种策略读写锁Boost Thread 线程库指南创建线程互斥体 6种互斥体类型条件变量 boostcondition cond线程局部存储 可重入 boostth转载 2016-09-01 11:06:44 · 1101 阅读 · 0 评论 -
STL的线程安全解决方案
由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作. 读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改! 所以(下面来自<< Effective STL >> 条款十二): 在每次调用容器的成员函数期间都要锁定该容器。 在每个容器返回的迭代器(例如通过调用begin或end)的生存期转载 2016-08-02 15:37:56 · 7880 阅读 · 2 评论