C/C++语言学习
Bill Adams
资深互联网人。曾从事3D游戏客户端、音视频SDK、浏览器内核、元宇宙业务系统、AI工程架构设计与开发。负责ToC与ToB产品业务拓展。
展开
-
XBMC源码编译【WIN7+VS2008】
1、源码下载:http://xbmc.org/download/2、依赖库运行:xbmc-10.1\project\BuildDependencies\DownloadBuildDeps.bat如果有些依赖库无法获取,可以通过:http://www2.frugalware.org/mirror/xbmc.org/build-deps/win32/手动下载。3、编原创 2011-12-12 13:37:25 · 3048 阅读 · 2 评论 -
文件截取的实现
由于项目在进行空间管理的过程中需要对存储空间进行紧缩,然后释放多余的空间,经过资料的查找得知可以用以下函数进行实现:CreateFile、SetFilePointer、SetEndOfFile、GetFileSizeEx。综合使用方法如下面代码所示:///////////////////////////////////////////////////////////////////原创 2009-08-06 14:51:00 · 751 阅读 · 0 评论 -
C++中的动态空间扩充方法
由于C++中没有C语言中的realloc的函数,对存储空间的动态增长的再分配,就此写一个模板进行替代之:template T* realloc( T* &p, size_t oldsize, size_t newsize ){ if ( oldsize > newsize ) { return NULL; } T原创 2009-08-05 20:51:00 · 3498 阅读 · 1 评论 -
【Hello World】的另外一种实现方法
#include#include void fun(void) /* 此函数没地方调用过 */{ printf("Hello World/n"); exit(0);}int main(int argc,char *argv[]){ int buff[1]; buff[2]=(int)fun; return 0;}原创 2009-05-07 16:55:00 · 709 阅读 · 2 评论 -
对一个小问题的算法思考
/********************************************************************* 问题描述:* 程序设计题5:题目:有一个整数n,将n分解成若干个整数之和,* 问如何分解能使这些数的乘积最大,输出这个乘积m。* 例如:n=12* (1)分解为1+1+1+…+1,12个1,原创 2009-05-05 08:50:00 · 652 阅读 · 0 评论 -
例解虚函数和多态
1、什么是虚函数和多态虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。举个例子说明虚函数、多态、早绑定和晚绑转载 2009-07-15 10:07:00 · 600 阅读 · 0 评论 -
局域网IP、MAC、主机名扫描
#include #include #include #include "iphlpapi.h"#pragma comment( lib, "ws2_32.lib" ) #pragma comment( lib, "Iphlpapi.lib" ) void main( int argc, char **argv ){ int numberOfHost原创 2009-04-30 22:26:00 · 2364 阅读 · 1 评论 -
控制科学计数法的指数位数
默认情况下,用科学计数法表示实数,输出的指数位数为3。如何控制使其只输出2位指数位?VC6下如何?VC2005又如何?在VC2005下,运行库提供一个函数_set_output_format可以控制printf输出的实数的指数位,要输出2位指数位需要这样设置:unsigned int old_exponent_format = _set_output_format(_TWO_DIGIT_转载 2009-04-29 14:10:00 · 3108 阅读 · 0 评论 -
灰度矩阵处理之正规化、二阶矩、对比度、相关、熵【vc8】
1、stdafx.h// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料#include #include #include #include #incl原创 2009-04-29 14:43:00 · 2551 阅读 · 0 评论 -
递归搜索指定类型的文件
// SearchMusic.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include long File_Count = 0;long Dir_Count = 0;void Dir_A_S(LPCSTR pszDir,LPCSTR pszExt);int _tmain(int argc, _T原创 2009-04-26 13:51:00 · 727 阅读 · 0 评论 -
C对文件操作的小结
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O 文件操作,下面就分别介绍之。一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE 在stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* File status flags */cha转载 2009-08-05 13:16:00 · 1461 阅读 · 1 评论 -
VC8编译安装boost 1.39库及测试代码
1、运行【VS目录】/Microsoft Visual Studio 8/VC/bin/vcvars32.bat (或者开始-->所有程序-->Microsoft Visual Studio 2005-->Visual Studio Tools-->Visual Studio 2005命令提示符),然后切换到boost1.39目录。 2、执行 [boost]/tools/jam/build原创 2009-06-02 14:19:00 · 1455 阅读 · 0 评论 -
WinAPI文件操作
API太多时间久了容易忘记,存在这儿,用的时候免得到处查找浪费时间。原创 2010-05-28 09:04:00 · 2640 阅读 · 0 评论 -
VC常见编译错误信息集合
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。 寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")2、fatal error C1083: Cannot open include file: R原创 2009-11-26 21:09:00 · 1093 阅读 · 1 评论 -
对MD5的简单处理
一个对MD5的简单处理,没什么好看的,就是无聊之极写写玩···//---------------------------------------------------------------/** 对MD5码进行简单的转化* Compiled: VC2005* Auth: 陈相礼* Data: 2009/11/26*///------------------原创 2009-11-26 21:29:00 · 838 阅读 · 0 评论 -
程序调试常用API
Windows程序模块包括KERNEL、USER和GDI,其中KERNEL完成内存管理、程序的装人与执行和任务调度等功能,它需要调用原MS―DOS中的文件管理、磁盘输入输出和程序执行等功能; USER是一个程序库,它用来对声音、时钟、鼠标器及键盘输入等操作进行管理; GDI是一功能十分丰富的子程序库,它提供了图形与文字输出、图象操作和窗口管理等各种与显示和打印有关的原创 2009-11-26 21:15:00 · 687 阅读 · 0 评论 -
纯虚函数知识的整理
在C++中的一种函数申明被称之为:纯虚函数(pure virtual function).它的申明格式如下: class CShape{public: virtual void Show()=0;};注意红色部分,在普通的虚函数后面加上"=0"这样就声明了一个pure virtual function. 在什么情况下使用纯虚函数(pure vitrual fu转载 2009-07-15 10:17:00 · 764 阅读 · 0 评论 -
C++ const成员函数小结
一些成员函数改变对象,一些成员函数不改变对象。例如: int Point::GetY(){ return yVal;} 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt (int x, int y){ xVal=x; yVal=y;} 为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:转载 2009-07-14 09:22:00 · 782 阅读 · 0 评论 -
C++中调用指定程序打开相应的文件
如果执行ShellExecute函数打开文件时,文件没有指定相应的打开方式,则可以使用如下函数调用“打开方式...”对话框。 其中strName是文件名,pszFolder是路径。 int nRes = (int)ShellExecute(NULL, "open", strName, "", pszFolder, SW_SHOWDEFAULT); if(SE_ERR_NOASS原创 2009-08-28 17:02:00 · 2070 阅读 · 0 评论 -
遍历目录所有文件填入链表中
比较笨,边写边调试,几乎整了一个下午,唉~~~#include "stdio.h"#include "windows.h"#include using namespace std;unsigned long sum = 0;//////////////////////////////////////////////////////////////////////////原创 2009-08-13 18:08:00 · 1002 阅读 · 0 评论 -
char* 转化为 WCHAR* 的方法
WCHAR* ctowc( char *str ){ WCHAR* wstr = new WCHAR[2 * strlen(str) + 2]; if( !wstr ) return NULL; MultiByteToWideChar( CP_ACP, 0, str, -1, wstr, 2 * (int )strlen( str ) + 2 )原创 2009-08-11 11:16:00 · 895 阅读 · 0 评论 -
磁盘文件的查找
在ANSI C中文件查找通过findfirst和findnext函数进行。在Win32中提供了专门的文件查找的函数, HANDLE FindFirstFile( LPCTSTR lpFileName, // file name LPWIN32_FIND_DATA lpFindFileData // data buffer);BOOL FindN转载 2009-04-26 11:33:00 · 730 阅读 · 0 评论 -
C语言书写Windows服务程序
#include "Windows.h"#include "Winsvc.h"#include "time.h"#include "stdio.h"SERVICE_STATUS m_ServiceStatus;SERVICE_STATUS_HANDLE m_ServiceStatusHandle;BOOL bRunning=true;void WINAPI Se转载 2009-04-24 13:27:00 · 787 阅读 · 0 评论 -
简单C语言编译器之需求说明【待完善】
编译原理实验指导书一、目的《编译原理》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据编译程序的一般原理和基本方法,通过具体语言的编译程序的编写,掌握编译程序的主要实现技术,并养成良好的程序设计技能。二、要求通过这次设计,要求在词法分析,语法分析和语义分析等方面加深对课程基本内原创 2009-03-23 13:10:00 · 2213 阅读 · 2 评论 -
简单C语言编译器之主函数main.c【待完善】
程序主函数如下: /* ++++++++++ 头文件部分 ++++++++++ */#include "head.h"#include "node.h"#include "pubvar.h"#include "table.h"#include "function.h"/* ++++++++++ 主函数开始 ++++++++++ */int main(原创 2009-03-23 13:21:00 · 1041 阅读 · 0 评论 -
简单C语言编译器之SLR分析【待完善】
程序Main语句块语句串语句赋值语句条件语句ID表达式if条件关系运算符项因子NUM|PMBCLFID原创 2009-03-23 13:17:00 · 1473 阅读 · 0 评论 -
扩展的欧几里德算法求乘法逆元
#include /* 扩展的欧几里德算法求乘法逆元 By VC++ 6.0 陈 */int ExtendedEuclid( int f,int d ,int *result);int main(){int x,y,z;z = 0;printf("输入两个数:/n");scanf("%d%d",&x,&y);if(ExtendedEuclid(x,y,&z)) printf("%d和%d互素,原创 2008-05-17 12:12:00 · 3865 阅读 · 4 评论 -
计算方法之高斯消去
#include "stdio.h"#include "math.h"#include "stdlib.h"typedef double arrtype;//高斯消去法void GuassScale(arrtype coff[],int n,arrtype *x = NULL,int m = 1){ int col = n + m; arrtype *s原创 2008-05-17 12:08:00 · 1401 阅读 · 0 评论 -
词法分析之LED文件生成程序【调试中......】
#include #include #include /* 关键字表宏定义 */#define KEYTYPE int // #define ERRTYPE -1#define FILES 0#define DATE 1#define FONT_NAME 2#define FONT_SIZE 3#define TIMES 4#define原创 2008-07-12 20:52:00 · 982 阅读 · 0 评论 -
学生成绩管理
#include#include /*头文件*/#include#include#include#include#include#include#define NULL 0#define ESC 0x001b /* 退出 */#define F1 0x3b00 /* 查看帮助信息,调用HelpMassage()函数 */#define F2 0x3c00 /*输入学生成绩*/#define F原创 2007-09-06 19:57:00 · 949 阅读 · 1 评论 -
黑客编程例子
#include "stdio.h"#include "windows.h"#include "winbase.h"#include "tlhelp32.h"#pragma comment(lib,"kernel32.lib")#pragma comment(lib,"advapi32.lib")#pragma comment (lib, "urlmon.lib")原创 2007-06-08 13:15:00 · 2274 阅读 · 1 评论 -
C++获取系统时间
//方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); puts( tmp )转载 2009-04-03 14:42:00 · 1286 阅读 · 0 评论 -
__FILE__,__LINE__宏引申
// ProDefConstVar.cpp : 定义控制台应用程序的入口点。////// __FILE__, __LINE__, __DATE__,__TIME__, 被定义在全局名子空间中! // 当编译标准 C 程序时,编译器自动定义 __STDC__ // 当编译标准 C++ 程序时,编译器自动定义 __cplusplus #include "s转载 2009-04-08 14:40:00 · 1999 阅读 · 0 评论 -
框架窗口的图标动画显示
可以用TIMER,但是TIMER不能有效的定时。因为TIMER发送的是窗口消息,当窗口忙于处理键盘、鼠标等消息时就不能及时处理TIMER,会使间隔时间变得很长 。 可以考虑用一个单独得TIMER线程,用Sleep()定时来解决此问题。 UINT Timer(LPVOID param) { HWND hWnd=(HWND)param; while(1) { Sleep(转载 2009-04-05 19:40:00 · 514 阅读 · 0 评论 -
窗体透明效果
使用SetLayeredWindowAttributes可以方便的制作透明窗体,此函数在w2k以上才支持,而且如果希望直接使用的话,可能需要下载最新的SDK。不过此函数在w2k的user32.dll里有实现,所以如果你不希望下载巨大的sdk的话,可以直接使用GetProcAddress获取该函数的指针。 SetLayeredWindowAttributes的函数原型如下:BO转载 2009-04-05 19:29:00 · 584 阅读 · 0 评论 -
文件查找类
class CFindFile{// 用来查找文件的类protected: HANDLE m_hFind; // 保存当查找的位置句柄。 bool m_bFound; // 当前查找是否成功。 WIN32_FIND_DATA m_FindFileData;// 保存当前文件的属性。public: CFindFile(void) { m_hFind = IN转载 2009-04-05 14:05:00 · 607 阅读 · 0 评论 -
文件转化工具【增强】
本版本加入了从十六进制到二进制转化的编码方式选择,方便由十六进制转化为汉字。可以任意复制,请保留版权信息。/*========================================================*//*RainLeaf 文件转化工具 [版本 1.0]/n(C) 版权所有 2008-2009 R.L Studio.功能:将一个文件转化为十六进制文件,或原创 2009-04-06 15:07:00 · 878 阅读 · 0 评论 -
更改窗口图标并将其显示在任务栏
以下两个函数可以为应用程序中的各子窗口显示一个任务条到任务栏并更改它们的图标。对那些象QQ一样隐藏主窗口的应用程序特别有用。 //函数用途:更改一个窗口的图标并将其显示在任务栏、任务切换条、任务管理器里 //参数说明: //hWnd 要改变图标的窗口句柄 //hLargeIcon 显示到任务切换条上的图标 32*32 //hSmallIcon 显示到除任务切换条之外的图标 16*16 //hI转载 2009-04-05 20:24:00 · 2643 阅读 · 0 评论 -
VC实现全屏显示
全屏显示是一些应用软件程序必不可少的功能。比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“ViewFull Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态。 在VC++6.0中我们用AppWizard按默认方式生成单文档界面的应用程序框架。下面将先讨论点击菜单项“ViewFull Screen”实现全屏显示的方法,再讲述按“Esc”键后如何退出全转载 2009-04-05 20:21:00 · 1162 阅读 · 0 评论 -
防止窗口闪烁的手段
1、将Invalidate()替换为InvalidateRect()。 Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善闪烁的情况,计算一个Rect转载 2009-04-05 19:43:00 · 607 阅读 · 0 评论