c/c++
活最好的自己
做一个快乐的learning coder!To be my best!
展开
-
2014-05-13:学习MFC首先要知道的--程序执行顺序
转自于:http://blog.csdn.net/husongchao/article/details/5063786#commentsMFC的程序执行顺序很多刚学MFC的人都会被MFC给弄的晕头转向。以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如何开始运行的呢?到底MFC有没有遵转载 2014-05-13 23:29:33 · 828 阅读 · 0 评论 -
error:system("type d:\\1.txt");不能查看文件的内容
1、看了这个错误,我挺纳闷的,也就只能定位在这句话上了。原创 2014-07-06 20:39:34 · 1068 阅读 · 0 评论 -
赋值操作符的返回值
转自http://hi.baidu.com/sinbad_li/item/24d75575d9b36e2ed6a89c51转载 2014-07-05 20:16:16 · 2562 阅读 · 1 评论 -
文件操作函数fseek设置文件指针的位置,第三个参数是起始地址,有0,1,2三个值,分别指首地址,当前地址,文件尾地址EOF;第二个参数是偏移地址正为右,负为左
#include #include void main(){ FILE *fStream =NULL; fStream = fopen("d:\WIMRepairRead.txt","rw+");//包含在stdio.h中 if (NULL != fStream) { fseek(fStream,-2,SEEK_END); printf("fgetc(fStream):原创 2014-07-05 19:59:05 · 4954 阅读 · 2 评论 -
fgetc读取简单文件的内容
#include #include int main(){ FILE *fStream = NULL; int iReturn = 1; char ch; fStream = fopen("d:\\wimrepairread.txt","r+"); if (fStream != NULL) { fseek(fStream,0,SEEK_SET); while((原创 2014-07-05 18:48:24 · 1968 阅读 · 0 评论 -
简单的程序日志打印函数WriteLog,适用于vc等,含宽字符。
#include #include #include #include #pragma comment(lib,"Psapi.lib")char szLogPath[1000];char szCurrentDirectory[1000];bool WriteLog(char *pLog){ FILE *fScream = fopen(szLogPath,"a+"); i原创 2014-07-15 15:43:13 · 2626 阅读 · 0 评论 -
error C2600: 'Point::Point' : cannot define a compiler-generated special member function (must be de
1、运行原创 2014-09-06 19:26:45 · 3440 阅读 · 0 评论 -
error LNK2001: unresolved external symbol "public: __thiscall Point::~Point(void)" (??1Point@@QAE@XZ
1、以为析构函数就只是原创 2014-09-06 19:56:41 · 1354 阅读 · 0 评论 -
孙鑫MFC视频第二节代码练习(二)类的this指针,类的派生
//this指针指向的是对象的地址而不是类的地址//2_3_1.h#ifndef _2_2_1_H_#define _2_2_1_H_class Point{private: int x; int y;public: void output(); void output( int x,int y );};#endif//2_3_1.cpp#include#i原创 2014-09-08 19:16:36 · 585 阅读 · 0 评论 -
代码规范
1、定义一个变量时,尽量给HKEY hKey =NULL;原创 2014-04-22 11:57:34 · 679 阅读 · 0 评论 -
关于未赋值的变量,是真是假
1、原创 2014-08-27 15:00:46 · 1564 阅读 · 0 评论 -
vc中的build,run,compile的区别
一个C/C++程序的生成要经历以下步骤: 1.编写文本代码,生成C或cpp文件,这时候它还是文本的; 2.编译,就是compile,由C编译程序对你写的代码进行词法和句法分析,发现并报告错误,有错时编译不能通过。如若无错,则生成中间代码,扩展名为obj,此时它便是二进制的了; 3.连接,在汇编里称link,在C里叫生成,即build,它的作用是生成可执行的exe文件。由转载 2014-07-05 20:47:55 · 5759 阅读 · 0 评论 -
文件操作函数fputs
1、函数fputs的功能和函数fprintf的原创 2014-07-06 20:42:17 · 1563 阅读 · 0 评论 -
2014-05-14:MFC recvfrom函数
1、原型:2、原创 2014-05-14 17:49:30 · 1462 阅读 · 0 评论 -
2014-05-12:vc6.0 定位 navigate back 快捷键设置
1、安装vc小助手()原创 2014-05-12 23:53:16 · 1617 阅读 · 0 评论 -
2014_03_30工作日志:error创建dll时,只生成了dll,却没有发现lib文件
错因:只记着写__declspec(dllexport) BOOL DLL_Test(IN LPTSTR lpFilePath,IN LPTSTR lpMd5Content);这个头文件Dll_Md5_Test.h,却忘记了在含有BOOL APIENTRY DllMain(HINSTANCE hInstance,DWORD fdwReason,PVOID pvReserved){原创 2014-03-30 19:10:25 · 616 阅读 · 0 评论 -
执行函数execwait(NULL,lpCmd,120000)
bool execwait(char *cmdline,char *cmd,int timeout){ PROCESS_INFORMATION pi; STARTUPINFO si; ZeroMemory( &pi, sizeof(pi) ); ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si);原创 2014-07-16 19:17:45 · 1796 阅读 · 0 评论 -
2014-05-13:OnCreate 函数的说明
转自于:http://www.cnblogs.com/carbs/archive/2012/04/29/2475955.htmlOnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。 在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是转载 2014-05-13 23:27:51 · 643 阅读 · 0 评论 -
20140605:MFC开发小技巧20个
参考:http://blog.sina.com.cn/s/blog_520db5ec01009oa4.html原创 2014-06-05 21:47:27 · 552 阅读 · 0 评论 -
error:MultiByteToWideChar cannot convert parameter 2 from 'char [10]' to 'unsigned short *'
MultiByteToWideChar(CP_ACP,0,RootDirectory,-1,wRootDirectory,0)以上语句原创 2014-06-05 12:13:38 · 2006 阅读 · 0 评论 -
error:cannot convert parameter 1 from 'unsigned char *' to 'char *'
原文是: unsigned char *ucWriteMbr = (unsigned char *)malloc(sizeof(unsigned char)*5); strcpy(ucWriteMbr,"0x11223344");strcpy只对char指针有效,不能对byte类型原创 2014-07-22 19:23:28 · 4000 阅读 · 0 评论 -
文件操作函数feof判断是否指向文件的结尾处,结尾即为空字符
#include #include int main(){ FILE *fStream = NULL; int iReturn = 1; char ch; fStream = fopen("d:\\wimrepairread.txt","r+"); if (fStream != NULL) { fseek(fStream,0,SEEK_SET); ch = fg原创 2014-07-05 19:08:21 · 2025 阅读 · 0 评论 -
文件操作函数fprintf
1、fprintf#include #include #includeint main(){ FILE *fRead,*fWrite; char chChar = 'a'; char szFileContent[100]; int i = 0; fRead = fopen("d:\\1.txt","r+");// fWrite = fopen("d:\\1.txt",原创 2014-07-06 19:37:52 · 696 阅读 · 0 评论 -
notepad++ 代码行间距调整
在“设置”-“语言格式设置”里面,找到style里面的Line number margin一项,调整字体大小就可以调整左边标号的大小,然后文本内容的行间距即可任意调整。转载 2014-08-14 16:33:44 · 14770 阅读 · 7 评论 -
VC中怎么获取屏幕分辨率
int with= GetSystemMetrics(SM_CXFULLSCREEN);int heigh= GetSystemMetrics(SM_CYFULLSCREEN);转载 2014-08-15 21:16:46 · 1403 阅读 · 0 评论 -
关于%02d %.10d %2d %.01f的值的区别
1、printf("%.2d\n",2);和printf("%02d\n",2);以及printf("%.02d\n",2);的结果是一样的都是02,百分号后面的小数点或者0代表了数字前面要以0来占位;格式化字符串中的d前面的非零数字代表的是 需要保留 的有效数字 的位数,不够的位数 用0来填充。2、printf("%2d\n",2);的结果却是 2,以空格代替了0原创 2015-01-27 16:25:09 · 8860 阅读 · 1 评论 -
c/c++ error:GetAdaptersInfo调用失败后重复调用,导致内存溢出
1、一开始一看就知道是 内存泄露 的问题,但是没有猜到 ,这个内存泄露 不是我自己开辟的内存引起的,而是因为一个函数的 实参 传递错误 引起的。2、我将 最原始 正确的代码 ,一点点地添加我 当前的代码,没有发现任何问题。当我更新 嫌疑最大 的Get_My_IP_MAC函数时,就出现bug了。3、我对这个函数的 更新 主要出在 写程序日志 上,最后 仔细原创 2015-01-28 14:57:59 · 1811 阅读 · 0 评论 -
c/c++ error:在GetAdaptersInfo循环中使用strcat时,忘记清空strcat导致 内存溢出 异常
1、感觉程序没啥 问题 ,结果一运行,一大堆问题,都出来了。错误代码如下:#include #include #include #include #include #pragma comment(lib,"IPHlpApi.lib")int main(){ DWORD dwReturn = 1; DWORD dwResult = 1; ULONG ulOutLen原创 2015-01-28 15:25:14 · 1142 阅读 · 0 评论 -
c/c++ error:GetAdaptersInfo第二个实参未被赋值,GetMac.exe 已停止工作
1、出现这个问题,很明显是是内存分配有问题。2、和 正确的代码 一对比,才发现是 以下这部分代码 出问题了 ULONG ulOutLen ; IP_ADAPTER_INFO *pIpAdapterInfo = ( IP_ADAPTER_INFO * )malloc( sizeof(IP_ADAPTER_INFO) ); if ( pIpAdapterInfo == N原创 2015-01-28 12:37:13 · 895 阅读 · 0 评论 -
20140629:简单的打印函数执行日志的函数代码WriteLog函数(适用于c++builder等,未加载lib文件)
#include #include #define PATH "d:\\20140629fopen.txt"bool WriteLog(char *pPath,char *pLog);void main(){char *pPath = PATH;char *pLog = PATH;if (WriteLog(pPath,pLog)){c原创 2014-06-29 16:49:39 · 1284 阅读 · 0 评论 -
windows API error:读取某个磁盘的剩余空间信息时,得不出正确的结果
1、使用GetDiskFreeSpace函数获取某个分区的容量信息时,总是获取到和实际结果不一致的信息。2、对照了以前正确的程序,才发现,要将GetDiskFreeSpace函数的那几个参数强制转换为DWORD64类型的,才可以相乘得到正确的结果。3、代码如下://获取每个volume的剩余空间BOOL GetVolumeSize( IN char cVolume ){ HANDLE原创 2015-02-10 15:09:24 · 1309 阅读 · 0 评论 -
防止程序被多次重复调用的代码
HANDLE hMutex; hMutex=CreateMutex( NULL,//no security attributes FALSE,//initially not owned "SiciMoboInitial");//命名Mutex是全局对象 //在所有的process都可以访问到 CreateMutex if(ERROR_ALREADY_EXISTS原创 2015-02-26 18:54:04 · 2609 阅读 · 0 评论 -
c/c++开发 总结
1、在 写函数 时,传进来 的形参 若是 一个指针,且 该指针所指内容不为空,尽量 将该指针 所指的内容 赋值给 本地变量,以免 引起 不必要的 冲突。原创 2015-02-26 11:29:08 · 432 阅读 · 0 评论 -
我对__cdecl、__stdcall、__fastcall 的理解
0 函数调用约定解决的就是 主调函数如何保存函数中的若干个实参,如何恢复原状。1 __cdecl调用方式(C语言默认调用方式)1、由主调函数从右向左把被调函数的实参压入栈。2、由主调函数恢复被调函数的堆栈。3、由主调函数管理堆栈,可以实现变参函数。4、命名修饰方法是在函数前加一个下划线。如_ShowProcess原创 2014-11-23 13:43:06 · 496 阅读 · 0 评论 -
对于 函数的形参含有指针 的情况,要判断该指针是否为NULL
1、若 函数的形参接收到的是一个空指针,则函数 对该空指针的间接访问 是非法的。2、判断方法有两种:①if( s == NULL ) return false; ②if( !s ) return false;例如:int main(){ char *s = NULL; if( s == NULL ){ printf("no content\n"); }else{ p原创 2015-04-16 15:57:22 · 3081 阅读 · 0 评论 -
win32 判断IP及子网掩码是否合法
代码如下:#include #include #include bool IsSubnetMask(char* subnet);bool if_a_string_is_a_valid_ipv4_address(const char *str) ;#pragma comment(lib,"Ws2_32")void main(){ if (IsSubnetMask("256原创 2014-11-20 16:07:51 · 2089 阅读 · 0 评论 -
win32创建窗口及其消息循环
转自:http://anyzixin.blog.163.com/blog/static/365289122007103031657355/转载 2014-09-24 02:13:20 · 1908 阅读 · 0 评论 -
error:使用rebuild编译链接dll文件和exe文件,结果改变产生dll的源文件的内容,输出结果都没有改变
1、我一开始以为是我的代码有问题,有待呢让原创 2014-09-15 14:14:46 · 634 阅读 · 0 评论 -
在被调函数中开辟的内存内否在主调函数中使用?
strcpy在string.h中,而不是在stdlib.h中。malloc在stdlib.h中。 int func(){int a[1024]; return a;} 这里的a所占用空间,在函数结束后会被自动释放,无法继续使用 int * func(){int *t; t = malloc(4096); return t;} 这里申请的4K空间就可以返回给主调函数使用 int f原创 2014-11-12 15:29:21 · 841 阅读 · 0 评论 -
VC6.0总结
1、只要把文件添加到了workspace原创 2014-11-13 17:53:56 · 573 阅读 · 0 评论