C/C++
qq_26422355
这个作者很懒,什么都没留下…
展开
-
设计模式
设计模式1、工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。1.1、简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品型号就可以创建一个产品。缺点:工厂类集中了所有产品类的创建逻辑,如果产品量较大,会使得工厂类变的非常臃肿。转载 2020-08-20 16:05:09 · 163 阅读 · 0 评论 -
慎用USES_CONVERSION
USES_CONVERSION是ATL中的一个宏定义。用于编码转换(用的比较多的是CString向LPCWSTR转换)。在ATL下使用要包含头文件#include "atlconv.h"使用USES_CONVERSION一定要小心,它们从堆栈上分配内存,直到调用它的函数返回,该内存不会被释放。如果在一个循环中,这个宏被反复调用几万次,将不可避免的产生stackoverflow。//使用AT...转载 2019-10-14 09:27:21 · 135 阅读 · 0 评论 -
C++获取指定文件夹下的所有文件名(或路径)
#include <io.h>#include <fstream>#include <string>#include <vector>#include <iostream>using namespace std;//获取所有的文件名void GetAllFiles( string path, vector<stri...转载 2018-11-13 11:03:37 · 1840 阅读 · 0 评论 -
wchar_t 转换 string & std::string 转换 wchar_t
开发语言:C++#include <iostream>#include <windows.h>#include <string>// wchar_t to stringvoid Wchar_tToString(std::string& szDst, wchar_t *wchar){wchar_t * wText = wchar;DWO...转载 2018-12-13 16:23:23 · 2375 阅读 · 0 评论 -
char*转LPCWSTR Unicode编码
在Windows编程中,经常会碰到字符串之间的转换,char*转LPCWSTR也是其中一个比较常见的转换。下面就列出几种比较常用的转换方法。1、通过MultiByteToWideChar函数转换 MultiByteToWideChar函数是将多字节转换为宽字节的一个API函数,它的原型如下:int MultiByteToWideChar( UINT CodePage, ...原创 2018-12-14 17:21:48 · 830 阅读 · 0 评论 -
C++中指针数组的分配与释放
C++中指针数组的分配与释放C++中可用new和delete关键字分配和释放内存,但是如果遇到指针数组(或指向指针的指针),分配和释放必须慎重,不然容易造成内存泄漏。下面用一段代码给出如何使用指向指针的指针来分配和释放内存: 1 2 3 4 5 6 7 8 9 10 11 12 13...原创 2019-03-09 14:11:56 · 6306 阅读 · 0 评论 -
VC下加载JPG/GIF/PNG图片的两种方法
仅管VC有提供相应的API和类来操作bmp位图、图标和(增强)元文件,但却不支持jpg、gif和png等格式的图片,而这几种格式却是常常要用到的。这里我给大家介绍两种办法来操作这些格式的图片。1.用API OleLoadPicture来加载JPG、GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明)OleLoadPicture函数实际上创建了一个IPictu...转载 2019-03-27 16:13:37 · 365 阅读 · 0 评论