现在位置: 首页 > VC编程技巧
2014-07-24 06:39 工业·编程 ⁄ 共 1835字 暂无评论
    VC++编译器中包括一种本机类型,用来支持长字符串,它就是wchar_t,它所占用的内存长度为2个字节,同时VC++编译器2个字节长度的类型有short, unsigned short。(参考链接:http://msdn.microsoft.com/zh-cn/library/dh8che7s(VS.80).aspx)它们相互之间其实是可以进行类型转换而不会发生内存定位错误的,如: (在打开编译器选项/Zc:wchar_t的情况下) #include "stdafx.h" #include <windows....
阅读全文
2014-07-15 20:27 工业·编程 ⁄ 共 1134字 暂无评论
格式化输出API, printf, sprintf, vsprintf等等早已被大家知悉,使用规则也是了如指掌:比如 %d, %s, %p, %-02d等等;sscanf 相当使用的略少,它的用法除了常用的 %d, %s, %c等之后还有 “^”,“[”,“]”,“*”等等; 1. “^” 和正则表达式中的 ^作用一致, 相当于非; 2. “[”,“]”成对使用,和正则表达式中的 [, ]作用一样,相当于取值范围; 3. “*” 表示忽略,和正则表达式中的 * 取N个类似值的作用有区别; 函数原型: int ssc...
阅读全文
如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。      1、制作dll      利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具体定义。与一般写类的定义不同,在exp.h中需要写成 class __declspec(dllexport) exp {   ...
阅读全文
    将一个cpp文件分割成几个cpp文件,另外加上一个h文件。《C++游戏设计》这本书上了解到,cpp文件通常是要编译的,而且是带着h文件一起展开进行编译的。通常的h文件不能进行编译。所以我们只能在cpp文件上进行编译。但是这里问题就出现了。     如果一个大型项目,它要处理为数众多的文件,可能文件的包含关系有着数十层,h文件和cpp文件众多,那么项目组的如果修改了一个小小的h文件,就得使...
阅读全文
2014-02-27 22:06 工业·编程 ⁄ 共 723字 暂无评论
    最近要实现遍历某路径下所有JPG文件,并获取每个图片的大小,我的代码如下: HBITMAP  image; CBitmap m_bmp; image= (HBITMAP)::LoadImage( NULL,L"D:\\a1.jpg",IMAGE_BITMAP,0,0,0); BITMAP bm; m_bmp.Attach(image); m_bmp.GetObject(sizeof(BITMAP),&bm); //bm.bmWidth中保存图片的宽度 //bm.bmHeight中保存图片的高度 结...
阅读全文
2013-12-14 13:26 工业·编程 ⁄ 共 3520字 暂无评论
vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关。 》》》VS2005编译器选项 VC 编译命令开关 /C:在预处理输出中保留注释语句 /c:只编译,不连接,相当于在"Build"菜单下选择了"Compile" /D:定义常量和宏,与源程序里的#define 有相同效果 /E:预处理C、C++源文件,将源文件中所有的预编译指令及宏展开,将注释去掉,然后将预处理器的输出拷贝至标准输出设备输出,并且...
阅读全文
一.问题起源和定义     在使用VC开发时,当一个解决方案的工程数多达几十个甚至上百个,因为工程设置基本是一样的,因此修改工程项目属性成了一件单调的事情。这里所说的工程属性包括输出目录、中间目录、预处理器、第三方库头文件路径和第三方库文件路径等等。     传统上解决这个问题有两个办法:一个是自定义工程向导,通过自己的工程向导来生成具有统一设置的工程;二是使用属性表。但这两...
阅读全文
2013-08-30 22:35 工业·编程 ⁄ 共 1195字 暂无评论
编译器必须假设不同的指针可能会指向存储器中的同一个位置。这造成了一个主要的妨碍优化的因素。 例如: void twiddle1(int *xp, int *yp) { *xp += *yp; *xp += *yp; } void twiddle2(int *xp, int *yp) { *xp = 2 * (*yp); } 看起来twiddle1与twiddle2实现的是同样的功能,并且twiddle2应该是twiddle1的优化版,因为twiddle2只需要访问一次xp和一次yp,而twiddle1却用了两次。 但是,考虑下面一种情况: int t; twiddle1(&...
阅读全文
2013-04-04 21:30 工业·编程 ⁄ 共 681字 暂无评论
//选择目录 void CDemoDlg::OnClickedButtonFolder() {     char szPath[MAX_PATH];     m_folder.GetWindowTextA(szPath, MAX_PATH);     BROWSEINFO bi={};     bi.hwndOwner=m_hWnd;     bi.lpszTitle="请选择输入目录";     bi.lpfn=CDemoDlg::BrowseCall...
阅读全文
Ⅰ.VC中得到当前系统的时间和日期: 得到时间的方法一般都是得到从1900年0点0分到现在的秒数,然后转为年月日时分秒的形式得到当前的时间(时分秒)。主要方法如下: 》》》VC++得到当前系统时间日期 GetSystemTime() 1)使用CRT函数 C++代码  char szCurrentDateTime[32];     time_t nowtime;     struct tm* ptm;     time(&now...
阅读全文