Programing TIPS

前端之家收集整理的这篇文章主要介绍了Programing TIPS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1.gcc to release@H_403_1@ gcc -DNDEBUG test.c -o test @H_403_1@ @H_403_1@ 2. 基本gcc命令@H_403_1@ g++ -c -D NDEBUG=3 reciprocal.cpp -o reciprocal -L/usr/local/lib/pam -lpam@H_403_1@ @H_403_1@ 3. 查看gcc帮助@H_403_1@ info gcc@H_403_1@ @H_403_1@ 4. 预编译默认宏@H_403_1@ __DATE__ @H_403_1@ __TIME__@H_403_1@ @H_403_1@ 5. MFC resource 拖动控件时,调整tab键一动顺序, 在resource菜单,ctrl + D, 然后用鼠标点击确定顺序。 如果不勾选tab stop, tab键永远都不会跳到他身上@H_403_1@ @H_403_1@ 6. -lz zlib1g@H_403_1@ @H_403_1@ 7. 乱码大赛: http://www.ioccc.org/years.html@H_403_1@ @H_403_1@ 8. 使用Xtreme ToolkitPro皮肤:@H_403_1@ 1. 添加文件到<stdAfx.h>: #include <D:\Xtreme ToolkitPro\Include\XTToolkitPro.h> // Codejock Software Components@H_403_1@ 2. 在CMainFrame::CMainFrame() 中加入@H_403_1@ TCHAR szStylesPath[_MAX_PATH];@H_403_1@ CString m_strStylesPath;@H_403_1@ VERIFY(::GetModuleFileName(@H_403_1@ AfxGetApp()->m_hInstance,szStylesPath,_MAX_PATH)); @H_403_1@ CString csStylesPath(szStylesPath);@H_403_1@ int nIndex = csStylesPath.ReverseFind(_T('\\'));@H_403_1@ if (nIndex > 0) {@H_403_1@ csStylesPath = csStylesPath.Left(nIndex);@H_403_1@ }@H_403_1@ else {@H_403_1@ csStylesPath.Empty();@H_403_1@ }@H_403_1@ m_strStylesPath = csStylesPath + _T("\\Skin\\");@H_403_1@ @H_403_1@ XTPSkinManager()->SetApplyOptions(xtpSkinApplyFrame | xtpSkinApplyColors | xtpSkinApplyMetrics | xtpSkinApplyMenus);@H_403_1@ XTPSkinManager()->LoadSkin(m_strStylesPath + _T("iTunes"),_T("Normalitunes.INI"));@H_403_1@ @H_403_1@ 3. 工程属性(alt+F7)->链接器->常规->附加库目录->"D:\Xtreme ToolkitPro\Lib" @H_403_1@ @H_403_1@ remark: 链接ToolkitPro1321vc80D.dll,表示VC8.0debug版本,而链接ToolkitPro1321vc80UD.dll表示当前字符集为Unicode。@H_403_1@ @H_403_1@ 9. 拷贝已存在Dll到指定目录:@H_403_1@ 工程->属性->生成事件->生成后事件->命令行: call copy.bat@H_403_1@ #copy.bat@H_403_1@ set out_dir="../../Debug"@H_403_1@ if exist %out_dir% ( @H_403_1@ echo %out_dir% @H_403_1@ md %out_dir%\Skin@H_403_1@ del /Q %out_dir%\Skin.* @H_403_1@ ) else ( @H_403_1@ echo "creating output directory..." @H_403_1@ md %out_dir% @H_403_1@ ) @H_403_1@ @H_403_1@ copy /y ToolkitPro1321vc80D.dll %out_dir%@H_403_1@ xcopy Skin %out_dir%\Skin /S /V /E@H_403_1@ @H_403_1@ 10. VC6.0 设置include 路径@H_403_1@ (not good)方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”->“Directories(目录)”重新设置“Excutable Fils、Include Files、@H_403_1@ Library Files、Source Files”的路径。@H_403_1@ (good)Select the C/C++ tab next. Change Category to Preprocessor,and add ../Include to Additional Include Directories.@H_403_1@ @H_403_1@ 11. sqlite@H_403_1@ 1. sqlite mannger@H_403_1@ a. sqlite mannger,add extension in firefox@H_403_1@ b. open sqlite mannager: firefox-> tool-> sqlite mannager@H_403_1@ 2. sqlite tutorial: @H_403_1@ http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html@H_403_1@ @H_403_1@ 12. VC输出错误信息:@H_403_1@ LPVOID lpMsgBuf;@H_403_1@ FormatMessage( @H_403_1@ FORMAT_MESSAGE_ALLOCATE_BUFFER | @H_403_1@ FORMAT_MESSAGE_FROM_SYSTEM | @H_403_1@ FORMAT_MESSAGE_IGNORE_INSERTS,@H_403_1@ NULL,@H_403_1@ GetLastError(),@H_403_1@ 0,// Default language@H_403_1@ (LPTSTR) &lpMsgBuf,@H_403_1@ NULL @H_403_1@ );@H_403_1@ @H_403_1@ AfxMessageBox((LPCTSTR)lpMsgBuf);@H_403_1@ //MessageBox( NULL,(LPCTSTR)lpMsgBuf,L"Error",MB_OK | MB_ICONINFORMATION );@H_403_1@ @H_403_1@ LocalFree( lpMsgBuf );@H_403_1@ @H_403_1@ 相比于linux[perror(""); or fprintf("xxxx %s\n",strerror(errno));],太麻烦了。@H_403_1@ @H_403_1@ 13. printf("%X %x",15,15); /*控制十六进制大写小*/@H_403_1@ @H_403_1@ 14. sdl begin:@H_403_1@ 下载 sdl 版本: http://www.libsdl.org/release/ vs2005 对应1.2.14 VC8.0@H_403_1@ 教程: http://lazyfoo.net/SDL_tutorials/index.PHP@H_403_1@ 1. 设置引用的lib目录: 连接器->常规->附加库目录@H_403_1@ 2. 设置引用的lib名字: 连接器->输入->附加依赖项@H_403_1@ 3. 设置第三方头文件目录: C/C++->常规->附加包含目录@H_403_1@ 4. C/C++ -> 代码生成->运行时库 -> /MD(for release) /Mtd(for debug)@H_403_1@ 5. 连接器->系统->子系统->Windows (/SUBSYSTEM:WINDOWS)@H_403_1@ @H_403_1@ 15. 基本技能 技能描述@H_403_1@ 阅读代码 这个技能需要程序员能够具备读懂已经存在的代码的能力,这样的能力可以让程序员分析程序的行为,了解程序,这样才能和开发团队一起工作,继承维护或是改进现有的程序。@H_403_1@ 编写程序 编写程序并不包括程序设计。不要以为编程是一件很简单的事情,很多程序员都认为编程只需要懂得程序语言的语法,并把设计实现就可以了。但是这离编写程序还远远不够,使用什么样的编码风格成为编写程序员最需要具备的基本技能。能否使用非常良好的编程风格直接决写了程序员的级别。@H_403_1@ 软件设计 这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并不是所有的程序在这一方面都非常优秀,但每个程序员都需要或多或少的明白和掌握这一基本技能。@H_403_1@ 熟悉软件工程 每个程序员都应该明白软件工程是什么东西,都应该知道,需求分析,设计,编码,测试,Release和维护这几个阶段。当然,几乎所有的人都知道这些东西,但并不是每个人都很清楚这些东西。现在很多高级程序员都会混淆“需求规格说明书FS”和“概要设计HLD”。另外,程序员还需要知道一些软件开发的方法论,比如:敏捷开发或瀑布模型。@H_403_1@ 使用程序库或框架 一个程序员需要学会使用已有的代码,无论是标论的程序库,或是第三方的,还是自己公司内部的,都需要学会做。比如:C++中,需要学会使用STL,MFC,ATL,BOOST,ACE,CPPUNIT等等。使用这些东西,可以让你的工作事半功倍。@H_403_1@ 程序调试 程序调试是分析BUG和解决问题最直接的能力。没有人能够保证程序写出来不用调试就可以运行正常,也没有人可以保证程序永远不会出BUG。所以,熟练使用调试器是一个程序员需要具备的基本技能。@H_403_1@ 使用IDE 学会使用IDE工具也会让你的工作事半功倍。比如,VC++,Emacs,Eclipse等等,并要知道这些IDE的长处和短处。@H_403_1@ 使用版本控制 一定要学会使用版本控制工具,什么叫mainline/trunk,什么叫tag,什么叫branch,怎么做patch,怎么merge代码,怎么reverse,怎么利用版本控制工具维护不同版本的软件。这是程序员需要明的的软件配置管理中最重要的一块。@H_403_1@ 单元测试 单元测试是每个程序都需要做的。很多单元测试也是需要编码的。一定要学会在xUnit框架下进行单元测试。比如JUnit,NUnit,CppUnit等等。@H_403_1@ 重构代码 每个程序员都需要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》,每个程序员都应该读一下。@H_403_1@ 自动化编译 程序员需要使用一个脚本,其能自动化编程所有的工程和代码,这样,整个开发团队可以不停地集成代码自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。 @H_403_1@ @H_403_1@ 16. 大牛的练习:@H_403_1@ http://www.samba.org/ftp/unpacked/junkcode/

猜你在找的Sqlite相关文章