C++
東方白
吾虽浪迹天涯,却从未迷失本心。
展开
-
音频采集
#include "stdafx.h"#include <stdio.h> #include <Windows.h> #pragma comment(lib, "winmm.lib") #define ID_RECORD 101#define ID_STOP 102#define ID_PLAY 103HINSTANCE hInst; i...原创 2019-09-25 21:58:53 · 258 阅读 · 0 评论 -
vs生成动态链接库配置(del $(OutDir)\*.lib)
copy ..\..\src\$(ProjectName)\lib\*.* $(OutDir)\copy ..\..\src\$(ProjectName)\hplugin.xml $(OutDir)\del $(OutDir)\*.ilkdel $(OutDir)\*.expdel $(OutDir)\*.lib(之前遇到未生成lib文件,原来是这里配置了删除) ...原创 2019-01-21 14:26:41 · 315 阅读 · 0 评论 -
qt 绘图
http://www.cnblogs.com/lsgxeva/p/7821550.html转载 2019-01-15 14:36:26 · 151 阅读 · 0 评论 -
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
原创 2018-01-23 09:29:01 · 277 阅读 · 0 评论 -
C++虚函数、纯虚函数、虚基类
C++虚函数、纯虚函数、虚基类原创 2016-07-28 10:30:56 · 303 阅读 · 0 评论 -
C++构造函数、拷贝构造函数
构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。(摘自百度百科 构造函数 )。 class Base { public: Base(int var) : m_Var(var)原创 2016-07-28 11:26:17 · 192 阅读 · 0 评论 -
C++重载、覆盖、隐藏
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与原创 2016-07-28 14:05:26 · 242 阅读 · 0 评论 -
C++网络编程
// Server.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h"#include #include #include #include "FileLog.h"#include "time.h"usingnamespace std;#pragma comment(lib,"ws2_32.lib")//多线程调用的方法只有一个指针型的参数,有时原创 2016-07-29 15:35:24 · 742 阅读 · 0 评论 -
CThread
原创 2017-09-26 14:06:50 · 424 阅读 · 0 评论 -
C++实现反射机制
#define DECLARE_CLASS_CREATE(class_name) \ static CObject* CreateClass## class_name (); #define IMPL_CLASS_CREATE(class_name) \ static CObject* CreateClass## class_name (){ \ return原创 2017-09-18 17:19:01 · 515 阅读 · 0 评论 -
C++ 工厂+反射+配置文件
#include #include #include using namespace std;typedef void* (*register_func)();class CReflect{public: static void* newInstance(const string& class_name) { std::map::iterator it = m_regi原创 2017-09-26 21:19:22 · 624 阅读 · 1 评论 -
单例模式
/** @file Singleton.h* @note * @brief 宏定义一个类实现单例需要做的一些工作。* @author Jlzlight* @date 2011-09-27* @note 每个单例类最好将其构造函数和虚析构函数设置为private*/#include #define SINGLETON_DECLARE(theclass) \public:原创 2017-09-27 12:14:35 · 206 阅读 · 0 评论 -
拷贝构造函数和赋值构造函数私有化
#include #includeusing namespace std;class noncopyable{private: noncopyable(const noncopyable& non) {} noncopyable& operator=(const noncopyable &) {}public: noncopyable(){} virtual ~non原创 2017-09-27 12:24:34 · 617 阅读 · 0 评论 -
同步锁
#pragma onceCMM_NS_BEGINclass SyncObject{public: SyncObject(void); SyncObject(DWORD dwSpinCount); ~SyncObject(void); void lock(); void unlock();private: CRITICAL_SECTION m_SyncObject;原创 2017-09-27 14:34:11 · 216 阅读 · 0 评论 -
windows读写锁
/** @file CWRGuard.h* @note * @brief 读写锁** @author Jlzlight* @date 2017-9-27** @note * @note 历史记录:* @note V1.0.0 ** @warning *//*读写锁的特点如下:1)如果有其它线程读数据,则允许其它线程执行读操作,但不允许写操作。2)如果有其它线原创 2017-09-27 16:26:14 · 418 阅读 · 0 评论 -
explicit关键字(显示转换)
class Test{public: explicit Test(bool bFlag) :m_bFlag(bFlag) { }private: bool m_bFlag;};int main(){ Test testC = 2;}explicit :只对一个参数有效(其余参数都是默认值,也有效)不添加 explicit: warning C4305: “参数”原创 2017-09-27 16:30:11 · 371 阅读 · 0 评论 -
static_cast/const_cast
const_cast用法:const_cast (expression)说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。常量指针被转化成非常量指针,并且仍然指向原来的对象;常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。stat原创 2017-09-28 10:16:47 · 300 阅读 · 0 评论 -
Buffer is too small
Book::Book(){}Book::Book(const char *name){ this->bookname = new char[strlen(name) + 1]; //分配的空间要加一(/0) Buffer is too small strcpy_s(this->bookname, strlen(name)+1, name); //要把/0也考进去原创 2016-07-27 19:31:58 · 1610 阅读 · 0 评论