随笔分类 - C++
11
摘要:错误分析: 这是在链接过程中的报错,之所以在这里报错,而没有在编译过程中报错,说明包含报错方法的.h文件已经被包含了,但对应的cpp文件或者库文件链接器没有找到,所以它就很委屈地报了这个错误. 那会有哪些可能的原因导致这个问题呢? 1.缺少对应的cpp文件(比如下图中,在main.cpp中,添加了.
阅读全文
摘要:https://www.jianshu.com/p/fe4b6b95dca5 注意点:由于使用到了Graphviz,所以要设置Dot选项,勾选HAVE_DOT,并设置DOT_PATH为Graphviz的bin目录。
阅读全文
摘要:同理CreateProcess也是类似的,不过它的取值类型更多,网上没有介绍dwCreationFlags为0的情况,估计和线程一样的。
阅读全文
摘要:尽管 C 和 C++ 都已经有标准,但是几乎每个编译器 (广义,包含连接器等) 扩展一些 C/C++ 关键字。 合理地应用这些关键字,有时候能使我们的工作非常方便。下面随便说说 Visual C++ 中 #pragma 指示符的使用。 一、用#pragma导出DLL函数 传统的到出 DLL 函数的方
阅读全文
摘要:最近在找windows下比较好用的函数时间统计的库,听同事说gperftools是跨平台的,就下载下来尝试了一把.发现它确实实现了windows上可以调用的dll库文件(tcmalloc_minimal,VS2015下的工程),而自己想要用到的ProfilerStart()和ProfilerStop
阅读全文
摘要:STL中,对内存管理的alloc的设计,迫使我去学习了allocator类。这里对allocator内存管理做了点笔记留给自己后续查阅。allocator类声明、定义于头文件<memory>中的std命名空间内。所以,应该有以下内容位于文件头部… #include <memory> using na
阅读全文
摘要:在程序开发时有时需要获取线程和进程ID以分析程序运行 (1)windows下获取进程或线程ID 通过调用系统提供的GetCurProcessId或GetNowThreadID来获取当前程序代码运行时的进程或线程ID 示例代码: #include "windows.h" printf("now pid is %d", GetCurrentProcessId()); printf("now tid...
阅读全文
摘要:设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()。 一个进程进入了临界区,另一个进程等待 没有一个进程进入临界区 两个进程都进入临界区 两个进程都在等待 互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进
阅读全文
摘要:CreateMutex函数 该函数找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。 CreateMutex()函数可用来创建一个有名或无名的互斥量对象,其函数原型为: HANDLE CreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttribute
阅读全文
摘要:DoModal会产生模态对话框(有模式的对话框,有“是”或者“否”供用户选择),函数运行到此处后不会马上返回,会等待用户的响应(响应后对话框销毁),在此对话框未销毁前,其他窗口不会接收到用户的输入(注意对话框弹出后,其他窗口的消息传递不受影响)。 CDialog::DoModal()的返回值为IDO
阅读全文
摘要:1.C++11中的线程,生产者和消费者模式 2.多线程中同步的方法 互斥量,信号量,条件变量,读写锁; 3.设计模式中的简单工厂和工厂方法和抽象工厂 4.快速排序的原理,如何判定一个排序算法是稳定的 5.单例模式如何实现的 #include <iostream> using namespace st
阅读全文
摘要:链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件 在链接过程中,它必须把符号(变量名、函数名等一些列标识符)用对应的数据的内存地址(变量地址、函数地址等)替代,以完成程序中多个模块的外部引用 对于链接器而言,链接库不过是一个具有许多目标文件的集合
阅读全文
摘要:先把dll的项目生成一下,把得到的pdb,dll文件复制到exe目录下,然后直接双击运行exe(不是通过vs启动),再接着在dll的项目中”调试”->”附加到进程”,选择刚才运行的exe. 注意:使用release模式进行调试时,对优化进行关闭. 不好用时,可以采用”以应用程序验证程序开始”方式:(
阅读全文
摘要:https://blog.csdn.net/SoaringLee_fighting/article/details/78375085
阅读全文
摘要:抽象类中可以对虚函数进行实现,但子类必须要重写该函数,否则子类仍然是一个抽象类,不能实例化。子类中调用基类的方法可以用基类名::方法.#include <iostream> using namespace std; class A { public: virtual void display()=0
阅读全文
摘要:指使用的一个唯一的整数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。 windows 之所以要设立句柄,根本上源于内存管理机制的问题—虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因
阅读全文
摘要:参考文章: 1.C++的那些事:你真的了解引用吗 2.引用的本质是什么?
阅读全文
摘要:一.char *strcpy(char *dest, const char *src) 参数 dest -- 指向用于存储复制内容的目标数组。 src -- 要复制的字符串。 注意: 1.dest需要分配内存,比如用数组的形式 或者 指针进行new操作. 2.src和dest所指内存区域不可以重叠且
阅读全文
摘要:1.c++ 标准 new 失败是抛出异常的,Visual C++ 6.0中返回一个NULL指针. 使用new(std::nothrow)可以保证失败时返回NULL; 因此完全可以 #define new new(std::nothrow) . 2.使用 malloc/calloc 等分配内存的函数时
阅读全文

浙公网安备 33010602011771号