C 使用心得(精品).doc_第1页
C 使用心得(精品).doc_第2页
C 使用心得(精品).doc_第3页
C 使用心得(精品).doc_第4页
C 使用心得(精品).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 使用心得(精品) 1QT编译Project-setting-link-object/library modules中添加qt-mt322.lib qtmain.lib编译选项/MLd-/MDd若程序中用到QT宏,如Signal和Slot等,需要将鼠标点击进相应的.h文件,然后点击QT ToolBar的moc生成moc_*.cpp文件,在QT控件中显示中文QTextCodec:setCodecForTr(QTextCodec:codecForName(LOCAL_LANGUAGE);QTextCodec:setCodecForCStrings(QTextCodec:codecForName(LOCAL_LANGUAGE);QTextCodec:setCodecForLocale(QTextCodec:codecForName(LOCAL_LANGUAGE);QToolTip:add(m_pGraphFrame,tr(绘图区);关于浮动窗口(QDockWindow)QDockWindow*dw1=new QDockWindow(QDockWindow:InDock,this);dw1-setResizeEnabled(TRUE);dw1-setVerticalStretchable(TRUE);dw1-setCloseMode(QDockWindow:Always);addDockWindow(dw1,DockLeft);setDockEnabled(dw1,DockTop,FALSE);setDockEnabled(dw1,DockBottom,FALSE);AnalogClock*clock=new AnalogClock(dw1);dw1-setWidget(clock);/clock必须为指针或全局变量,不能为局部非指针变量dw1-setGeometry(QRect(0,0,200,300);/clock-setAutoMask(TRUE);/clock-resize(100,100);clock-show();/dw1-show();2stl的安装及使用的安装及使用stlport安装以下描述中,假定你使用的Windows装在C:Windows目录;VC装在C:Program FilesMicrosoft VisualStudioVC98;而STLport原包置于C:STL4VC。 C:STL4VC中应该有以下内容doclibsrcstlporttest文件ChangLog文件Install编译文件Readme文件Todo同时确保C:Program FilesMicrosoft VisualStudioVC98bin在你的Path环境变量中。 下面一步步来0.本次配置任务均在DOS命令状态下完成,请先从“开始”-“附件”菜单中选中MS-DOS方式,打开一个DOS窗口。 1.到C:Program FilesMicrosoft VisualStudioVC98中,利用你顺手的文本器修改两个文件vcvars32.bat,其中有两行set INCLUDE=%MSVCDir%ATLINCLUDE;%MSVCDir%INCLUDE;%MSVCDir%MFCINCLUDE;%INCLUDE%set LIB=%MSVCDir%LIB;%MSVCDir%MFCLIB;%LIB%改成set INCLUDE=C:STL4VCstlport;%MSVCDir%ATLINCLUDE;%MSVCDir%INCLUDE;%MSVCDir%MFCINCLUDE;%INCLUDE%set LIB=C:STL4VClib;%MSVCDir%LIB;%MSVCDir%MFCLIB;%LIB%上面为了方面阅读用符号将过长的一行折成两行,实际文件中还是一行。 修改完毕後保存,然後执行命令vcvars32。 一切顺利的话应该给出一行结果Setting environmentfor usingMicrosoft VisualC+tools.如果你预设的DOS环境空间不足,这个BAT文件执行中可能导致环境空间overflow,此时应该在DOS窗口的“属性”对话框中找到“内存”页,修改“初始环境”ComboBox,改为一个较大的值,如1280或2048。 然後再次开一个DOS窗口,运行vcvars32.bat。 2.进入到C:STL4VCSRC目录中。 3.执行命令copy vc6.mak Makefile4.执行命令nmake cleanall VC编译STLport的过程就更加漫长。 屏幕反反复复地显示似乎是同样的内容,请务必保持耐心,这实际上是在以不同编译开关建立不同性质的目标库。 5.经过一段漫长的编译之後,终於结束了。 现在你再执行命令nmake install这次需要的时间不那麽长,但也要有点耐心。 stl使用tool-option-directory:include:C:STL4VCstlport tool-option-lib:C:STL4VClib将stlport的include和lib放在首位在文件中include使用时,std:vector需要加编译选项/GX/MDd,SGI STL中大量使用try.throw.catch,VC缺省情况下不支持此语法,/GX是要求VC+Compiler打开对异常处理语法的支持。 有关编译选项的含义,详细信息可以查询MSDN。 3CORBA dhw:假定Corba放在C盘的Corba下增加ORBACUS_CONFIG C:Orbacusooc.conf path中添加:C:Orbacusbin lib中添加C:Orbacuslib include增加C:Orbacusinclude project-setting-link-object/lib中增加库ob.lib jtc.lib project-setting-C+-project option中增加/GR server端需要修改_impl.h/_impl.cpp的变量及构造函数,需要实现interface中的方法;对于interface中定义为in的变量,对于字符串,需要通过corba传递的必须使用CORBA:string_dup()生成;对于interface中定义为out的变量,生成的变量为_out型变量,在调用函数时,对应_out变量必须生成一个_var变量,作为参数传递进去,返回使用时需利用CORBA:string_dup();内存的释放使用若CORBA程序使用mfc,则必须在CORBA生成的类中#includestdafx.h否则会出现找不到文件尾的错误run_by_ppoa(false):是多线程模式,可以让界面刷新;若run_by_ppoa()则界面不刷新4.编程规范编程规范【规则3-2-1】类名和结构名用大写字母开头的单词组合而成。 例如class Node;/类名class LeafNode;/类名【规则3-2-2】函数名第一个单词用小写字母开头,其余的单词第一个字母大写组合而成。 void draw(void);/函数名void setValue(int value);/函数名【规则3-2-3】变量和参数用小写字母开头的单词组合而成。 例如BOOL flag;int drawMode;【规则3-2-4】常量全用大写的字母,用下划线分割单词。 例如const intMAX=100;const intMAX_LENGTH=100;【规则3-2-5】静态变量加前缀s_(表示static)。 例如void Init()【规则3-2-6】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。 例如int g_howManyPeople;/全局变量int g_howMuchMoney;/全局变量【规则3-2-7】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。 例如void Object:SetValue(int width,int height)m_width=width;m_height=height;5.表单控件使用表单控件使用ciw32.lib cli.lib ws2_32.lib GridDll.lib objectbase.lib NormalClassDll.lib qt-mt322.lib qtmain.lib projectsetting-C+-C+language选择enable run-time typeinformation QT_DLL,QT_THREAD_SUPPORT,QT_NO_LIBRARY_UNLOAD6.C+C+中include注意不能够嵌套include!7.在在VC中导出中导出C+类类,以以CInDLL类导出为例类导出为例:首先使用Wizard创建一个Win32Dynamic-Link Library工程在需要导出类的头文件中加入如下的代码#ifdef_CLASSINDLL#define CLASSINDLL_CLASS_DECL_declspec(dllexport)#else#define CLASSINDLL_CLASS_DECL_declspec(dllimport)#endif#endif/ClassInDLL_H将类定义改为class CLASSINDLL_CLASS_DECL CInDLLCInDLL();.dbx使用指南使用指南1:实用命令quit/q退出q退出run arg1arg2.用参数运行现有进程static ints_initValue;/静态变量r用上次的参数再次运行stop at在第line行设断点stop at在过程proc被调用处设断点cont继续运行到记号(断点或其他)处return执行完目前的进程返回print.打印表达式的值printfstring,exp,.用c语言的格式打印结果where打印当前调试状态,包括当前进程等信息func看当前运行进程名/移动到调用proc进程的母进程处file查看的文件切换到file文件处list,从file文件中列出从exp1行到exp2行list:列出file文件中从exp行开始的int行whatis显示变量的类型sh崭时进入sh状态sh执行一shell命令2:常用命令说明alias namestring把string内容定义为一缩略语name helpsection寻找某指令的帮助playback input从file中调入调试命令流playback output输出file中的调试命令流record input把调试过程输出到file中record output把命令的运行输出保存到file中history显示历史命令hed历史调试命令!运行历史命令流中第int个命令!-运行历史命令中倒数第int个命令!运行历史命令流中以string打头的命令!重复上一个命令mand;mand.多调试命令间用;隔开step向前追踪步,进入线程next向前追踪步,不进入线程delete all清所有断点listobj列出目前使用的obj单元listregions列出被用到的内存区enable/disable恢复/禁用号断点catch显示所有碰到的记号cont at运行直到line行intercept all在所有例外处都中断bx chat在所有出现char打头的异常处中断kill杀死pid线程goto从line行开始运行stop当var产生变化时中断stop当进入proc进程时中断stopvaratif条件中断trace当var变化时输出其原值和新值trace当进入进程时打印出母进程和参数when ifmand_list当条件为真时执行命令列when atifmand_list在遇到line行时如果条件为真执行命令列duel一种比较好的变量输出方式printregs输出所有寄存器的值status当前状态/向下寻找file中的string字符串?向上寻找file中的string字符串set设定或显示系统参数值VC编译优化设置编译优化设置日期:xx-08-26作者:laiyiling:.xoeo.浏览次数:58VC编译优化设置VC-Project Setting-Debug-Project Option语法解释-优化-/O1最小化空间minimize space/Op-改善浮点数一致性improve floating-pt consistency/O2最大化速度maximize speed/Os优选代码空间favor codespace/Oa假设没有别名assume noaliasing/Ot优选代码速度favor codespeed/Ob内联展开(默认n=0)inline expansion(default n=0)/Ow假设交叉函数别名assume cross-function aliasing/Od禁用优化(默认值)disable optimizations(default)/Ox最大化选项。 (/Ogityb2/Gs)maximum opts.(/Ogityb1/Gs)/Og启用全局优化enable globaloptimization/Oy-启用框架指针省略enable framepointer omission/Oi启用内建函数enable intrinsicfunctions-代码生成-/G3为80386进行优化optimize for80386/G4为80486进行优化optimize for80486/GR-启用C+RTTI enable C+RTTI/G5为Pentium进行优化optimize forPentium/G6为Pentium Pro进行优化optimize forPentium Pro/GX-启用C+异常处理(与/EHsc相同)enableC+EH(same as/EHsc)/EHs启用同步C+异常处理enable synchronousC+EH/GD为Windows DLL进行优化optimize forWindows DLL/GB为混合模型进行优化(默认)optimize forblended model(default)/EHa启用异步C+异常处理enable asynchronousC+EH/Gd_cdecl调用约定_cdecl callingconvention/EHc extern“C”默认为nothrow externCdefaults tonothrow/Gr_fastcall调用约定_fastcall callingconvention/Gi-启用增量编译enable incrementalpilation/Gz_stdcall调用约定_stdcall callingconvention/Gm-启用最小重新生成enable minimalrebuild/GA为Windows应用程序进行优化optimize forWindows Application/Gf启用字符串池enable stringpooling/QIfdiv-启用Pentium FDIV修复enable PentiumFDIV fix/GF启用只读字符串池enable read-only stringpooling/QI0f-启用Pentium0x0f修复enable Pentium0x0f fix/Gy分隔链接器函数separate functionsfor linker/GZ启用运行时调试检查enable runtimedebug checks/Gh启用钩子函数调用enable hookfunction call/Ge对所有函数强制堆栈检查force stackchecking forall funcs/Gsnum禁用堆栈检查调用disable stackchecking calls-输出文件-/Fafile命名程序集列表文件name assemblylisting file/Fo命名对象文件name objectfile/FAsc配置程序集列表configure assemblylisting/Fp命名预编译头文件name prepiledheader file/Fdfile命名.PDB文件name.PDB file/Frfile命名源浏览器文件name sourcebrowser file/Fe命名可执行文件name executablefile/FRfile命名扩展.SBR文件name extended.SBR file/Fmfile命名映射文件name mapfile-预处理器-/FI命名强制包含文件name forcedinclude file/C不吸取注释dont stripments/U移除预定义宏remove predefinedmacro/D=|#定义宏define macro/u移除所有预定义宏remove allpredefined macros/E将预处理定向到标准输出preprocess tostdout/I添加到包含文件的搜索路径add toinclude searchpath/EP将预处理定向到标准输出,不要带行号preprocess tostdout,no#line/X忽略“标准位置”ignorestandard places/P预处理到文件preprocess tofile-语言-/Zi启用调试信息enable debugging information/Zl忽略.OBJ中的默认库名omit defaultlibrary namein.OBJ/ZI启用调试信息的“并继续”功能enable Editand Continuedebug info/Zg生成函数原型generate functionprototypes/Z7启用旧式调试信息enable old-style debuginfo/Zs只进行语法检查syntax checkonly/Zd仅要行号调试信息line numberdebugginginfoonly/vd0|1禁用/启用vtordisp disable/enable vtordisp/Zpn在n字节边界上包装结构pack structson n-byte boundary/vm指向成员的指针类型type ofpointers tomembers/Za禁用扩展(暗指/Op)disable extensions(implies/Op)/noBool禁用“bool”关键字disableboolkeyword/Ze启用扩展(默认)enable extensions(default)-杂项-/?,/help打印此帮助消息print thishelp message/c只编译,不链接pile only,no link/W设置警告等级(默认n=1)set warninglevel(default n=1)/H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论