C/C++
xmsheji
这个作者很懒,什么都没留下…
展开
-
用C/C++做DLL函数的导出方法
由于VC编译器有函数重命名的功能所以,确定函数名有两种方式:1.extern "C"2.使用.def文件这两种也可以一起使用。 下面是一个例子: extern "C" _declspec(dllexport)int __stdcall JieCheng(int a){//阶乘函数。输入:正整数。输出:这个数的阶乘值 int b=1; for(int i=1;i { b原创 2010-03-11 09:24:00 · 1156 阅读 · 0 评论 -
随机函数原理
/** * 目前计算机上最常用的随机数产生方法是;线性同余法。 * 即 * f(x+1) = ( a*f(x) + b ) mod m; * 其中m一般去2的32次方减一,因为这是一个质数。 * 显然该式将产生0到m的伪随机数,然后重复。 */ static转载 2011-11-03 17:01:01 · 3197 阅读 · 0 评论 -
C/C++ 面试题
第一题: 下面程序的输出结果? #include #include void main(){char str1[] = "";char str2[] = "";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str原创 2010-03-12 09:35:00 · 1521 阅读 · 1 评论 -
vc调用动态链接库DLL和静态链接库Lib的四种方法
方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载: 1. HINSTANCE LoadLibrary( LPCTSTR lpLibFileName); 2. FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName); 3. BOOL FreeLibrary( HMOD转载 2009-11-30 16:41:00 · 3991 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别堆(heap)和栈(stack)有什么区别??简单的来讲堆(heap)上分配的内存,系统不释放,而且是动态分配的。栈(stack)上分配的内存系统会自动释放,它是静态分配的。 由malloc或new分配的内存都是从heap上分配的内存,从heap上分配的内存必须有程序员自己释放,用free来释放,否则这块内存会一直被占 用而得不到释放,就出现了“内存转载 2010-04-05 22:24:00 · 978 阅读 · 0 评论 -
文本替换程序代码
本文是一个文本替换程序的源代码,代码只对ANSI做处理。 #include #include #include using namespace std;#define BLOCKSIZE 10void ReplaceMemMore(char* buff,char* src,char* dest);void ReplaceMemLess(char* buff,char原创 2011-12-01 09:34:58 · 3218 阅读 · 0 评论 -
申请一个字节的空间可以做多少事?
int _tmain(int argc, _TCHAR* argv[]){ char* p=(char*)calloc(sizeof(char),1); for (int i=0;i<n;i++) { *(p+i)=0x30+i; } char *p2=(char*)calloc(sizeof(char),2);}这段代码的意图是测试只申请一个byte,到原创 2012-04-20 16:37:12 · 1150 阅读 · 0 评论 -
关于c++中的引用
引用是C++的一个特性,而C语言没有。本文总结了>一书中关于引用的一些介绍 第五章 引用5.1引用介绍5.2引用参数c++允许重载运算符,以方便程序设计。而重载运算符肯定是相对于对象而言的,而不是指针,所以没有办法用指针,但是直接传对象进去,效率很低,所以在这种情况下,应该用引用。而且应该用const修饰引用参数。5.3引用返回值引用返回值使得函数可以做左值,这是原创 2013-07-10 18:09:41 · 1105 阅读 · 0 评论 -
《c++ templates 中文版》
第二章 函数模板 typename是随着模板产生的,所以产生较晚。c++为了兼容以前的class,也可以用class代替模板,但是不建议这么使用,因为模板参数并不一定是自定义类型,也可以是内置类型(基本类型)。template//template 也可以T AddFun(T a,T b){ return a+b;}原创 2013-07-14 11:34:45 · 1950 阅读 · 0 评论 -
c/c++ 标准预定义宏
原文地址: http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html#Standard-Predefined-Macros原文内容: 3.7.1 Standard Predefined Macros The standard predefined macros are specified by the转载 2013-07-18 15:19:37 · 901 阅读 · 0 评论 -
c/c++数据转换方法
1. C 风格(C-style)强制转型如下: 1.1 (T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法: 1.2T(exdivssion) // cast exdivssion to be of type T这两种形式之间没有本质上的不同,它纯粹转载 2013-07-17 18:03:01 · 751 阅读 · 0 评论 -
函数指针,异步,回调,多线程
函数指针的例子(C++)#include #include int func(int a,int b){ return printf("%d/n",a+b); } int main() { int (*FunctionPionter)(int a,int b); FunctionPionter = func; (*FunctionPion原创 2011-01-12 16:34:00 · 815 阅读 · 0 评论 -
C++中引用DLL的两种方式
1.隐式连接:第一步:在项目—连接器—添加.lib文件第二步:把dll复制到程序目录或者system32下面2.动态加载:使用LoadLibrary函数原创 2009-12-07 10:54:00 · 1163 阅读 · 0 评论 -
WinInet联网方式
1.ConnMgrEstablishConnectionSync,InternetOpen,InternetOpenUrl,InternetReadFile2.ConnMgrEstablishConnectionSync,InternetOpen,nternetConnect,HttpOpenRequest,InternetReadFile 连接CMNETInternetOpen( _原创 2010-05-10 15:16:00 · 971 阅读 · 1 评论 -
C++单例模式的实现方法之一
TCHAR szGetPosition[] = _T("GetPosition"); HANDLE hMutex = CreateMutex(NULL,FALSE, szGetPosition); if( GetLastError()==ERROR_ALREADY_EXISTS ) { MessageBox(0,_T("已经开始定位了")原创 2010-05-10 14:38:00 · 688 阅读 · 0 评论 -
win32应用开发(完全用windows API)开发窗体和处理窗体事件
<br />/*//---------------------------------------------------------------------------#include <windows.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedWINAPI WinMain(HINSTANCE原创 2011-01-26 16:40:00 · 2318 阅读 · 0 评论 -
PE格式分析
<br />#include <stdio.h><br />#include <malloc.h><br />#include <string.h><br />#include <windows.h><br />#include <TlHelp32.h><br />#include <Psapi.h><br />int main() <br />{<br /> <br /> FILE *infile=NULL;<br /> IMAGE_DOS_HEADER dosheader;<br /> IMAGE_NT原创 2011-01-30 11:49:00 · 838 阅读 · 0 评论 -
VS2010中各种文件的说明
SDF文件和ipch文件夹: visual studio 2010 中新建一个项目会同时建立一个ipch目录与sdf文件,即使你删掉它,再次打开工程时还是会重新建立。动辄30、50M的容量让我们心里很不爽。其实这是2010的一个新功能,与智能提示,错误提示,代码恢复、团队本地原创 2011-09-16 19:50:47 · 13969 阅读 · 5 评论 -
微软记事本各种文件的文件头信息
微软记事本各种文件的文件头信息字符编码 文件头 数字 数字编码 汉字 汉字编码utf-8(有三个Byte): EF BB BF 1 0原创 2011-11-10 10:06:39 · 1685 阅读 · 0 评论 -
处理bmp格式的图片
计算bmp位图的大小的方法说明:1,当bmp为24位位图时:文件头的大小为14B;位图信息头的大小为40B;没有颜色表;数据大小=每行字节数*行数(每行所用的在字节数为(3*Width+3)/4*4;2,当bmp为小于24位位图时:文件头的大小为14B;位图信息头的大小为40B;有颜色表,大小为2的位数次方(2^1;2^4;2^8);数据大小=每行字节数*行数(每行所用的字节数:(Wi原创 2011-01-29 14:02:00 · 1431 阅读 · 0 评论 -
显示计算机上所有进程和进程的内存信息
显示进程信息 #include #include #include #include #include #include void PrintMemoryInfo( DWORD processID );int main() { PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); HANDLE hProce原创 2011-01-29 13:47:00 · 1077 阅读 · 0 评论 -
overlapped模型
int main(){BOOL rc;HANDLE hFile;DWORD numread;OVERLAPPED overlap;char buf[512];char szPath=”x://xxxx/xxxx”;//检查系统,确定是否支持overlapped,(NT以上操作系统支持OVERLAPPED)CheckOsVers转载 2013-07-18 18:12:38 · 796 阅读 · 0 评论