工作日志
活最好的自己
做一个快乐的learning coder!To be my best!
展开
-
2014-03-11vs2008字体的设置
tool-options-点击environment左边的三角-fonts and colors原创 2014-03-11 14:19:58 · 487 阅读 · 0 评论 -
2014-03-11周二工作记录
第一天待办:1、vs2008使用方法。原创 2014-03-11 13:54:57 · 514 阅读 · 0 评论 -
2014-03-12周三挺不错的查看关键字的定义的技巧
原创 2014-03-12 12:09:50 · 438 阅读 · 0 评论 -
2014-03-11周二Windows API 学习笔记
来源:http://www.cstc.net.cn学习Windows API 开发快半年了,在这期间我和我在西华大学的Diyinside团队6位同学一起学完了《Programming Windows , Fifth Edition》的第一部分一共12章的关于Win32 API的基础部分。从今天开始我会用大概6周左右的时间把我们学习的笔记和心得公布在Diyinside Community C转载 2014-03-11 20:44:30 · 472 阅读 · 0 评论 -
error:2014-03-11周二:在编写win32程序时依旧使用控制台程序。
错因:习惯了建工程时直接建立win32 CONSOLE APPLACATION,忘记了编写win32程序即windows程序需要用win32 APPLACATION原创 2014-03-11 18:24:13 · 438 阅读 · 0 评论 -
2014-03-12周三工作日志(忙了一天,竟都在忙一些兼容性的小问题)
学到的新知识: 1、void CopyMemory(目的地址,源地址,要复制的内存块的大小字节数)。作用:将一块内存的数据从一个位置复制到另一个位置。如果目的地址有内容,则需要使用MoveMemory函数。 如果将字符串复制到一个字符数组的位置上,则需要考虑结束符“\0”#includeint WINAPI WinMain( HINSTANCE hInsta原创 2014-03-12 10:35:54 · 522 阅读 · 0 评论 -
2014-03-12周三C语言和win32编程的指针和定义对比
1、C语言的指针直接这样int *p;定义。windows编程的指针类型的命令方式一般是在其指向的数据类型前加“LP”或“P”,比如指向 DWORD的指针类型为“LPDWORD”和“PDWORD”,如LPDWORD string;不需要加*2、DWORD的定义 是typedef unsigned long DWORD ,可见windows编程就是建立在C语言的基础之上的。原创 2014-03-12 11:21:06 · 499 阅读 · 0 评论 -
2014-03-11周二windows API编程学习
转自http://blog.sina.com.cn/s/blog_959878440100zf4x.html我并不是计算机专业的学生,从事的工作也和编程没啥关系,并且是工作了五六年后开始在业余时间学习windows编程的,这种背景下开始学编程确实比较痛苦。 买了Charles Petzold 的《windows 程序设计》看着肯定是头大的,云里雾里,WinMain函数看着都转载 2014-03-11 20:49:27 · 701 阅读 · 0 评论 -
2014-03-13周四:如果有的话,从路径删除文件扩展名PathRemoveExtension函数
运用该函数之前得先引用#include"Shlwapi.h"PathRemoveExtension("C:\\TEST\\sample.txt");输出为C:\\TEST\\sample原创 2014-03-13 16:22:03 · 1139 阅读 · 0 评论 -
2014-03-13周四:有意思的goto语句。。。
今天看了 尧哥的代码,看到了一个很奇怪的东西:exit:……上网查了,竟然查不到这个函数,我诧异了,就把它写在了待办日志里面。 过了一会儿,想起了查找他的原函数,但是竟查不到,而且,只有goto语句是蓝色的,goto后面的exit和下面的exit都是灰色,于是我就觉得肯定是goto出了些问题。然后我就上网搜了goto,结果果真不出我所料,问题就出在了goto这里。原创 2014-03-13 17:13:52 · 651 阅读 · 0 评论 -
2014-03-13周四:ifndef条件编译和宏开关解析
来自http://hi.baidu.com/shiwl111/item/e695a40e8489ce9aa2df4373#define TEST //定义了TESTint main(){{#ifdef TEST //定义了TEST,所以这里的ifdef为真cout#elsecout#endif /*TEST*/return 0;}所以转载 2014-03-13 14:35:03 · 1317 阅读 · 0 评论 -
2014-03-13周四:对于HMODULE,Handle ,HMODULE ,HINSTANCE ,HWND
以上句柄本质上都是VOID指针,是可以指向任何类型的指针。我们平时经常说HINSTANCE表示实例句柄,HMODULE是模块句柄,只是为了表述方便。原创 2014-03-13 15:26:34 · 634 阅读 · 0 评论 -
2014-03-13周四:Setlocale函数设置当前程序使用的本地化信息
Setlocale函数设置当前程序使用的本地化信息 LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()原创 2014-03-13 15:39:45 · 683 阅读 · 0 评论 -
2014-03-13周四:返回进程名函数:GetModleFileName和GetModuleBaseName的区别
转自:http://blog.csdn.net/love3s/article/details/8029173GetModleFileName返回进程名包含路径 GetModuleBaseName返回进程名不包含路径 下面是获取当前进程名的方法 GetModleFileName(NULL, lpText, sizeof(lpText)); GetModuleBaseName转载 2014-03-13 15:23:05 · 1837 阅读 · 0 评论 -
2014-03-13周四工作日志
待办:学到的新知识: 1、没有用TEXT()的字符串在编译时,编译成ASII码,而经过TEXT()或者_T()调用的字符串在编译时,会被编译为Unicode。原创 2014-03-13 09:49:43 · 472 阅读 · 0 评论 -
2014-03-13周四:关闭文件、文件映射、进程、线程、安全和同步对象等的CloseHandle函数,安全描述函数ConvertStringSecurityDescriptorToSecurity
BOOL CloseHandle(HANDLE hObject);参数hObject :代表一个已打开对象handle。返回值类型:long ;非零:执行成功;零:执行失败,可以调用GetLastError()获知失败原因。原创 2014-03-13 20:43:49 · 1151 阅读 · 0 评论 -
2014_03_14工作日志:刚解决的几个疑问
1、_tcscat()可以将指针指向的区域移动到另一个指针所指向的区域吗?答:当然可以啦,但是必须得先为第一个指向的区域开辟内存空间,这个空间不能太小。对于字符串来说,空间已满。。。2、HelperFunc.c中的第299行少了一个返回值return null;。答:可以不需要。3、第59行为什么要判断lpcFilePath字符串中是否含有单个的反斜杠?第2原创 2014-03-14 10:42:51 · 543 阅读 · 0 评论 -
2014-03-14周五工作日志:HeapAlloc与malloc的区别
malloc是在CRT的内存堆上分配的,这个堆的存在一般来说你是不会关心的HeapAlloc则不同,你需要给它指定你想从哪个堆上分配,而这个堆是从HeapCreate创建出来的HeapAlloc大多是用于自己管理堆的情况malloc可以移植是因为在不同的操作系统上有各自的实现,而所有平台上就叫这个名字。比如在Widnows上,VC中调用malloc时,其实在malloc内部就是转载 2014-03-14 11:53:51 · 514 阅读 · 0 评论 -
2014-03-13周四:内存释放函数HeapFree ()内存开辟函数HeapAlloc重新开辟函数HeapReAlloc
BOOL bResult=HeapFree(GetProcessHeap(),0,pMem); 成功时返回1,失败时返回0。原创 2014-03-13 17:51:46 · 1523 阅读 · 0 评论 -
2014-03-14周五工作日志:检查指定目录是否存在的函数MakeSureDirectoryPathExists
BOOL MakeSureDirectoryPathExists(PCSTR Dirpath);这个函数的主要作用是检测是否存在这个路径。如果存在,或者是不存在但创建成功,则返回非零值,否则将返回0。如果是路径不是文件名,需以 "\" 结尾。因此要提前检测一下,如果没有以 "\"结尾,则需要添加 "\"。原创 2014-03-14 15:43:23 · 747 阅读 · 0 评论 -
2014-03-16周日:内存释放函数HeapFree()
1、输入:BOOL WINAPI HeapFree( _In_ HANDLE hHeap, _In_ DWORD dwFlags, _In_ LPVOID lpMem);hHeap要释放内存的句柄,dwFlags堆的选择,一般是0,lpMem是指向将要释放内存的空间的指针。2、返回值: 如果函数成功,返回值是非零。 如果函数失败,返回值是零。应用原创 2014-03-16 10:39:46 · 831 阅读 · 0 评论 -
2014_03_28工作日志:error C2065: 'IOCTL_DISK_DELETE_DRIVE_LAYOUT' : undeclared identifier
遇到了良哥写的IOCTL_DISK_DELETE_DRIVE_LAYOUT常量,不知道是什么意思,查阅msdn后发现IOCTL_DISK_DELETE_DRIVE_LAYOUT被windows.h和winioctl.h所包含。 我添加之后,还是报同样的错误error C2065: 'IOCTL_DISK_DELETE_DRIVE_LAYOUT' : undeclared ide原创 2014-03-28 15:29:11 · 1312 阅读 · 0 评论 -
2014_03_18周二工作日志:
待办疑问:1、安全属性的lpSecurityDescriptor的PSD_DEFAULTMINMARGINS等属性是什么意思?应该是简单的应用,但是暂时我还不熟悉。2、咱执行一个WinMain函数,执行时会产生一个进程对吧,产生进程的过程应该就是调用内核函数createprogress的过程吧?学习总结:1、内核对象就是一个分配的内存块,只有内核可以调用。原创 2014-03-18 11:31:56 · 466 阅读 · 0 评论 -
2014-03-27工作日志:字符指针指向的字符串的输入、输出、求长度;将字符串与数字相连;
1、字符指针指向的字符串char *pchar="http://www.baidu.com";,输入字符串时,一般用scanf("%s",pchar);比较便捷。但是scanf("%s",str);把空格作为分隔符,故向字符指针中输入带空格的内容如"how are you ",就必须用gets(str); 对于string类型的变量的输入,一般用getline();原创 2014-03-27 21:57:57 · 629 阅读 · 0 评论 -
2014_03_19周三工作日志:
学习总结:1、 对于这种错误unresolved external symbol __imp__curl_easy_cleanup ,就应该知道是缺少包含文件的路径,tools-->options->directories->include files,tools-->options->directories->library files。而且编译的文件中必有包含库文件#pr原创 2014-03-19 10:56:52 · 496 阅读 · 0 评论 -
2014-03-30工作日志:error:sprintf其实不具有连接字符串的功能,每次调用它时,都是从头开始保存的
我一直以为sprintf能想strcat那样,将一个字符串与一个个字符连接在一起呢,没想到这种想法是错误的,每调用一次sprintf,就会从其第一个参数的首地址存放数据。而且strcat只能将两个字符串连接在一起,而不能将一个字符串和另一个字符串的某个字符连接到一起。 for (DWORD i = 0; i < cbHash; i++) { sprintf(lpMd5Co原创 2014-03-30 20:08:30 · 634 阅读 · 0 评论 -
2014_04_14第16周周四工作日志:获取用户sid的三种方法
1、LookupAccountSid2、GetTokenInformation 3、NtQueryInformationToken原创 2014-04-14 20:22:19 · 884 阅读 · 0 评论 -
2014_03_30工作日志:error C2146: syntax error : missing ';' before identifier 'LPTSTR'
如果头文件写成以下这样,一定会产生类似的很多问题。。。。#include#include"Common/HelperFunc.h"#include "Common/LogInfo.h"因为在调用HelperFunc.h和LogInfo.h头文件时,都引用了windows编程里面的内容,因此要引用windows.h。出错的地方其中一处:EXTERN_C LPTSTR HF_GetDo原创 2014-03-30 17:44:51 · 805 阅读 · 0 评论 -
2014-04-15第十六周周二工作日志:HKEY_CURRENT_USER
在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。原创 2014-04-15 11:48:50 · 460 阅读 · 0 评论 -
2014-04-15第十六周周二工作日志:时间表
1、上午9点半到10点半分析一下create原创 2014-04-15 11:07:25 · 493 阅读 · 0 评论 -
2014-04-30工作日志:提取文件的路径及使用createprocess时,要用getmodulename获取要执行的模块的路径及调用createprocess时要记得关闭新建的进程
TCHAR szPath[MAX_PATH]; if(GetModuleFileName(NULL, szPath, MAX_PATH)) { PathRemoveFileSpec(szPath); } else { //异常处理 } 以上代码要包含头文件#include并#pragma comment(lib,"shlwapi.lib");原创 2014-04-30 17:18:46 · 1291 阅读 · 0 评论 -
2014-04-30工作日志:CREATE_DISK' : undeclared identifier
编译时出现这个错误'CREATE_DISK' : undeclared identifier,可是对于CREATE_DISK我已经添加头文件windows.h了,问题#define _WIN32_WINNT 0x0500#define _CRT_SECURE_NO_WARNINGS原创 2014-04-30 19:29:49 · 691 阅读 · 0 评论 -
2014_03_18周二工作日志:特殊的输出函数sprintf
int sprintf( char *buffer, const char *format, [ argument] … );将第二个第三个参数表示的字符存在第一个字符里,返回第一个字符的长度intmain()/*主函数“整数”类型*/{charbuffer[50];/*“字符”类型的数组,下面共有50个元素。*/intn,a=5,b=3;/*三个变量都为“整数”类型*/n=sprin原创 2014-03-18 21:36:37 · 472 阅读 · 0 评论 -
2014-03-19工作日志:第一个工作小成功:c++传值给网页
client.cpp#include "httpclient.h"#include "curl/curl.h"#include #include #include using namespace std;#pragma comment(lib,"libcurl.lib")//#pragma comment(lib,"curllib_static.lib")//#pragma原创 2014-03-19 18:28:19 · 626 阅读 · 0 评论 -
014_03_30工作日志:warning C4081: expected 'newline'; found ';'
#pragma comment(lib,"Md5_Test.lib");这种写法是错误的,后面必须不能加分号。原创 2014-03-30 18:01:41 · 4395 阅读 · 0 评论 -
2014_03_30工作日志:error LNK2001: unresolved external symbol _Md5Making Release/Md5_Test.dll : fatal err
犯了这样的错误,一般是由于不细心造成的,结果,仔细查找后,还真是这样。 error中说,外部的Md5Making 函数有问题,于是我就断定,肯定是头文件里声明的和实现的Md5Making 不一样,我将头文件中的和cpp文件中的两个函数仔细地看了一下,觉得没什么问题,但总是报错。然后我就无聊地将头文件的声明语句覆盖了cpp文件中的实现语句,这一行为看似没什原创 2014-03-30 17:12:03 · 550 阅读 · 0 评论 -
2014_03_30工作日志:防止命令行调用时(带参数的main函数)出现乱码
_tsetlocale(LC_CTYPE,TEXT(""));包含于locale.h和tchar.h头文件中原创 2014-03-30 17:56:39 · 572 阅读 · 0 评论 -
2014_03_28工作日志:CreateFile不是创建文件,而是指向某个文件的一个句柄
lpFilePath=Text("d:/project/test.txt");hFile=CreateFile(lpFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL原创 2014-03-28 21:12:38 · 596 阅读 · 0 评论 -
2014-03-13周四:关于strcat函数
1、是用来连接两个字符串的,第二个字符接在第一个字符后面。把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。2、第一个地址必须有足够的空间来容纳第二个地址的字符串。3、返回值是指向第一个地址的指针4、在c语言中,#include。在C++中,则存在于头文件中,不需使用using namespace std;原创 2014-03-13 16:52:05 · 474 阅读 · 0 评论 -
神奇的字符串
1、小错误#includeusing namespace std;int main(){ char a[20]="hello";}是正确的。#includeusing namespace std;int main(){ char a[20]; a[20]="hello";}确实是错误的。以上的a[20]就等价于调用数组a的第21个元素,故该语句的意思就是,想把字符串“原创 2014-02-18 19:08:48 · 1205 阅读 · 0 评论