随笔分类 -  【原创】C/C++相关

MFC API ATL C语言
摘要:MFC 界面编程提高 参考资料 阅读全文
posted @ 2013-07-08 09:55 upendi 阅读(363) 评论(0) 推荐(0)
摘要:fstream对于中文路径,以及输入输出支持不好   1. C++流处理是不支持中文字符的。包括标准以及非标准流输入、输出、以读、写方式打开文件名、以及操作文件的路径。   2. C++的流处理以二进制读写,“endl” 符号用txt打开后,只能看见一个黑方块。   3. C++文件以单个字符方式读写,会把换行符丢失。 测试运行环境:VS2008 阅读全文
posted @ 2013-05-10 22:37 upendi 阅读(11455) 评论(0) 推荐(0)
摘要:error LNK2019: 无法解析的外部符号 阅读全文
posted @ 2013-04-12 15:36 upendi 阅读(729) 评论(0) 推荐(0)
摘要:这几天团队开发,出现一个奇怪的现象。更新代码后,编译调试居然不能够设置断点。编码的人都知道,调试程序不能设置断点是一件多么大的事情!!! 阅读全文
posted @ 2013-03-04 18:04 upendi 阅读(7619) 评论(1) 推荐(0)
摘要:Mutex,的互斥是以线程为基本单位,而Event是以代码段为基本单位。所以在两者的使用上有着不同的功能用途。 阅读全文
posted @ 2013-02-25 15:24 upendi 阅读(6145) 评论(0) 推荐(0)
摘要:最近写的比较少了。。。 这次遇到这个问题比较棘手,这个问题很奇怪,只在release下有问题,而debug下没有问题,找了好几天没找到问题所在。 结果慢慢的缩小范围,发现只要不调用 一个特定 函数就不会出问题。检查后发现这个函数没有什么问题,事实上这个函数并不是出问题的地方,而是调用它引起的一个消息响应函数的调用,而这个消息响应函数是从人家开发封装好的dll内传出来的。 因此,问题就是这个回调函数初始化时不对。因为初始化变量要求传入的值是变量的引用,而引用如果不做为全局变量,在回调时,在dll内部要使用这个变量可以在外边已经释放了空间(release优化了不使用的内存,而debug没... 阅读全文
posted @ 2013-02-21 15:18 upendi 阅读(1523) 评论(0) 推荐(0)
摘要:选程调试、DLL、PDB项目符号文件使用、堆栈信息、在线PDB文件连接、VS2008 阅读全文
posted @ 2013-01-08 12:08 upendi 阅读(1994) 评论(0) 推荐(0)
摘要:GetLastError 与 SetLastError#include <windows.h>#include <stdio.h>#define ERROR_NOT_SUPPORTED 50Lint func(int m){ if(m == 0 ) //SetLastError(0xe0000001); SetLastError(ERROR_NOT_SUPPORTED); else return true; return false;}void main (){ if(!func(0)) ... 阅读全文
posted @ 2012-12-11 10:59 upendi 阅读(7304) 评论(0) 推荐(0)
摘要:九宫格数独游戏解法 在算法中主要体现的是集合的概念和运算,如交并集的处理。 阅读全文
posted @ 2012-11-29 01:22 upendi 阅读(7749) 评论(0) 推荐(0)
摘要:MFC 字符串 中英文字符统计 GB2312 阅读全文
posted @ 2012-11-10 23:45 upendi 阅读(1677) 评论(0) 推荐(0)
摘要:牛人的牛逼代码分析之VA_LIST. VA_LIST 是在C语言中解决变参问题的一组宏,常用来处理不定参数。 阅读全文
posted @ 2012-11-09 11:57 upendi 阅读(1163) 评论(0) 推荐(0)
摘要:最近忽然想起《狼图腾》还没看完。。。 就一个TXT,感觉太大的每页困难,还有看起来好长,就想要是划分一下,以每个章节作一个txt... C/C++没找到用正则表达式和通配符的函数可以调用,分析章节特征只能这个去匹配了。 阅读全文
posted @ 2012-10-07 21:35 upendi 阅读(1103) 评论(0) 推荐(0)
摘要:很多时候,有些程序希望它开机自动运行。当然实现的方式有很多种,如:注册表项、开始-程序-启动文件夹、计划任务、系统服务程序等等。 然而,计划任务是一般用户了解最少的一种。并且前两种是很容易修改和通过杀毒软件禁用的。 【This code is Task schedul 1.0 for Win XP】【The shellexce command is easy for Win 7, and task scheldul 2.0 is also right.】 阅读全文
posted @ 2012-09-17 13:47 upendi 阅读(3336) 评论(0) 推荐(0)
摘要:最简单的方法就是用循环实现。#include <windows.h>#include <wchar.h>#include <stdio.h>void main (){ char *name = "qiang.zhou"; WCHAR wname[256]; for(int i = 0; i < strlen(name); i++) { wname[i] = name[i]; } printf("%s %s %s\n", name, wname);}有时候有些办法很傻很简单,想不到其它办法时候就这么解决好了。还有T 阅读全文
posted @ 2012-09-17 10:53 upendi 阅读(989) 评论(0) 推荐(0)
摘要:最近有点乱,有点忙~~对于一个用惯了C的程序员来说,不容易习惯C++的编程思想。C中有数组,C++中有string。相对来说数组可以有的操作string都能够实现,对字符的操作不需要在程序中使用strcpy,拷贝到char[]中。而且string更多其它封装好的处理功能,可以使用“.”,类的方法形式操作。C读写文件,一般有两种方式:fopen和open。open比fopen更底层,操作更复杂。C++的流输入输出,相对来说更方便。这个是最近写的一个测试用的部分代码,功能是一个简单的加解密。就是在循环里边做处理后写入目标文件,再循环处理解密后写往上解释文件。/* 思重创作,亚上分享 */#incl 阅读全文
posted @ 2012-09-03 00:06 upendi 阅读(1687) 评论(0) 推荐(0)
摘要:1. 自己定义的函数或者变量只给出了声明,并没有定义。2. 项目配置没有设定为win标准库或者MFC动态,而是设定为MFC静态库。因此有很多API没有加载定义,只是在默认相关头文件中有声明。所以只要搜索对应函数所在库,并加载到文件里边就可以静态编译了。要查找一个LINK错误,一般到MSDN去搜索相关函数或者变量,MSDN会提供相关的库说明。比如:使用到RegOpenKeyEx函数打开读取注册表,就要用到advapi32.lib库才能静态编译过。#pragma comment(lib,"Advapi32.lib")RegOpenKeyEx(HKEY_LOCAL_MACHINE 阅读全文
posted @ 2012-08-17 14:14 upendi 阅读(356) 评论(0) 推荐(0)
摘要:#include <string> #include <iostream> #include <fstream> #include <windows.h> #include <wininet.h> #include <winsock.h> #include <stdio.h> #include <stdarg.h> #pragma comment(lib,"wininet.lib") using namespace std; int main() { HINTERNET hOpe 阅读全文
posted @ 2012-08-10 14:33 upendi 阅读(2526) 评论(0) 推荐(0)
摘要:// createprocess_.cpp : 定义控制台应用程序的入口点。//#include <Windows.h>#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <conio.h>#include <windows.h>#include <MMSystem.h>int main(int argc, char* argv[]){//Main_t: char commanline[40]; char Inch; char cnt 阅读全文
posted @ 2012-08-10 14:20 upendi 阅读(880) 评论(0) 推荐(0)
摘要:1. 回调函数的定义和回调指针的定义的参数应完全相同。 2. 回调函数的定义和回调指针的定义的返回值要完全相同,并包类型声明。如:__stdcall要同有同无 3. 回调函数定义为类成员函数时,类中声明要为static 阅读全文
posted @ 2012-08-10 14:10 upendi 阅读(324) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <windows.h>#include <tlhelp32.h>void main(void){ PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == INVALID_HANDLE_VALUE) { printf("Create... 阅读全文
posted @ 2012-08-07 10:08 upendi 阅读(351) 评论(0) 推荐(0)