C++
文章平均质量分 71
xianjian_x
kxapiss@163.com
line:
xianjianxx
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在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 · 804 阅读 · 0 评论 -
vc++ 使用一个字体而不用安装
这是找了很久 google搜索出来的一个比较完整的很好的解决方案。 不仅有代码讲解,还有附件给出了编译好的程序和源码工程。 How to Use a Font Without Installing it https://www.codeproject.com/Articles/42041/How-to-Use-a-Font-Without-Installing-it#addres 附件不容易下载,这里我下载了放到资源里面供免费下载: https://download.csd...转载 2020-08-20 15:32:19 · 455 阅读 · 0 评论 -
STL的线程安全解决方案
由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作. 读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改! 所以(下面来自<< Effective STL >> 条款十二): 在每次调用容器的成员函数期间都要锁定该容器。 在每个容器返回的迭代器(例如通过调用begin或end)的生存期转载 2016-08-02 15:37:56 · 8215 阅读 · 2 评论 -
boost多线程库使用指南
基本使用 用函数或类实例创建线程 boostthread thread_group 使用 Boost线程库学习笔记 yield 放弃时间片 join 等待线程结束 使资源是线程安全的保证 给mutex加解锁有多种策略 读写锁 Boost Thread 线程库指南 创建线程 互斥体 6种互斥体类型 条件变量 boostcondition cond 线程局部存储 可重入 boostth转载 2016-09-01 11:06:44 · 1309 阅读 · 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 · 4617 阅读 · 0 评论 -
音频相关
音频帧概念详解 AAC MP3 示例代码附上我写的一个mp3 播放器音频帧概念详解 正常人听觉的频率范围大约在20Hz~20kHz之间。 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。 常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.原创 2016-09-01 14:26:12 · 1325 阅读 · 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 · 2479 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类: class ClxBase { public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout << "Do something i转载 2016-08-14 10:12:37 · 556 阅读 · 0 评论 -
一个由于锁的作用域导致core dump的问题的解决
如果没定义局部变量 lock 那么生存周期几乎为0请看如下代码:void CCommParams::setParams( const char * authUser, const char * authPsw, const char * securityLevel,转载 2016-08-14 12:05:31 · 2011 阅读 · 0 评论 -
桌面录音
公司做一个项目,需要把 windows 扬声器的声音捕捉下来,这个可以参考MSDN文档,上面有示例程序: Loopback RecordingCapturing a Stream这程序并不完整,还需要做一些修改才行:下面是我 调试通过的代码:#include <Mmdeviceapi.h> #include <Audioclient.h>//----------------------------原创 2016-08-14 16:13:02 · 3551 阅读 · 4 评论 -
获取窗口句柄
使用FindWindow函数获取窗口句柄 使用EnumWindows和EnumChildWindows函数 使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。 #include <Windows.h> #include <std转载 2016-09-06 14:36:13 · 1800 阅读 · 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 · 1121 阅读 · 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 · 994 阅读 · 0 评论
分享