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....
VC编程技巧阅读全文
2014-07-15 20:27
⁄ 工业·编程
⁄ 共 1134字
格式化输出API, printf, sprintf, vsprintf等等早已被大家知悉,使用规则也是了如指掌:比如 %d, %s, %p, %-02d等等;sscanf 相当使用的略少,它的用法除了常用的 %d, %s, %c等之后还有 “^”,“[”,“]”,“*”等等;
1. “^” 和正则表达式中的 ^作用一致, 相当于非;
2. “[”,“]”成对使用,和正则表达式中的 [, ]作用一样,相当于取值范围;
3. “*” 表示忽略,和正则表达式中的 * 取N个类似值的作用有区别;
函数原型:
int ssc...
sscanf, VC编程技巧阅读全文
2014-07-03 05:47
⁄ 工业·编程
⁄ 共 512字
如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。
1、制作dll
利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具体定义。与一般写类的定义不同,在exp.h中需要写成
class __declspec(dllexport) exp
{
...
VC编程技巧阅读全文
2014-07-03 04:17
⁄ 工业·编程
⁄ 共 911字
将一个cpp文件分割成几个cpp文件,另外加上一个h文件。《C++游戏设计》这本书上了解到,cpp文件通常是要编译的,而且是带着h文件一起展开进行编译的。通常的h文件不能进行编译。所以我们只能在cpp文件上进行编译。但是这里问题就出现了。
如果一个大型项目,它要处理为数众多的文件,可能文件的包含关系有着数十层,h文件和cpp文件众多,那么项目组的如果修改了一个小小的h文件,就得使...
VC编程技巧, 方法, 编译器阅读全文
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中保存图片的高度 结...
LoadImage, VC编程技巧阅读全文
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-09-26 17:16
⁄ 工业·编程
⁄ 共 961字
一.问题起源和定义
在使用VC开发时,当一个解决方案的工程数多达几十个甚至上百个,因为工程设置基本是一样的,因此修改工程项目属性成了一件单调的事情。这里所说的工程属性包括输出目录、中间目录、预处理器、第三方库头文件路径和第三方库文件路径等等。
传统上解决这个问题有两个办法:一个是自定义工程向导,通过自己的工程向导来生成具有统一设置的工程;二是使用属性表。但这两...
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(&...
VC编程技巧, 优化阅读全文
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编程技巧, 代码集锦阅读全文
2012-12-19 06:57
⁄ 工业·编程
⁄ 共 4011字
Ⅰ.VC中得到当前系统的时间和日期:
得到时间的方法一般都是得到从1900年0点0分到现在的秒数,然后转为年月日时分秒的形式得到当前的时间(时分秒)。主要方法如下:
》》》VC++得到当前系统时间日期 GetSystemTime()
1)使用CRT函数
C++代码
char szCurrentDateTime[32];
time_t nowtime;
struct tm* ptm;
time(&now...
VC编程技巧阅读全文