C++ 使用心得1.docx

上传人:b****5 文档编号:6142473 上传时间:2023-01-04 格式:DOCX 页数:12 大小:22.58KB
下载 相关 举报
C++ 使用心得1.docx_第1页
第1页 / 共12页
C++ 使用心得1.docx_第2页
第2页 / 共12页
C++ 使用心得1.docx_第3页
第3页 / 共12页
C++ 使用心得1.docx_第4页
第4页 / 共12页
C++ 使用心得1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C++ 使用心得1.docx

《C++ 使用心得1.docx》由会员分享,可在线阅读,更多相关《C++ 使用心得1.docx(12页珍藏版)》请在冰豆网上搜索。

C++ 使用心得1.docx

C++使用心得1

1.QT编译:

Project->setting->link->object/librarymodules中添加

qt-mt322.libqtmain.lib

编译选项/MLd-->/MDd

若程序中用到QT宏,如:

Signal和Slot等,需要将鼠标点击进相应的.h文件,然后点击QTToolBar的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=newQDockWindow(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=newAnalogClock(dw1);

dw1->setWidget(clock);//clock必须为指针或全局变量,不能为局部非指针变量

dw1->setGeometry(QRect(0,0,200,300));

//clock->setAutoMask(TRUE);

//clock->resize(100,100);

clock->show();

//dw1->show();

 

2.stl的安装及使用:

stlport安装:

以下描述中,假定你使用的Windows装在C:

\Windows目录;VC装在C:

\ProgramFiles\MicrosoftVisualStudio\VC98;

而STLport原包置于C:

\STL4VC。

C:

\STL4VC中应该有以下内容:

<目录>doc

<目录>lib

<目录>src

<目录>stlport

<目录>test

文件ChangLog

文件Install

文件Readme

文件Todo

同时确保C:

\ProgramFiles\MicrosoftVisualStudio\VC98\bin在你的Path环境变量中。

下面一步步来:

0.本次配置任务均在DOS命令状态下完成,请先从“开始”-->“附件”菜单中选中MS-DOS方式,打开一个DOS窗口。

1.到C:

\ProgramFiles\MicrosoftVisualStudio\VC98中,利用你顺手的文本编辑器修改两个文件vcvars32.bat,其中有两行

setINCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%

setLIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%

改成:

setINCLUDE=C:

\STL4VC\stlport;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;\

%MSVCDir%\MFC\INCLUDE;%INCLUDE%

setLIB=C:

\STL4VC\lib;%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%

上面为了方面阅读用"\"符号将过长的一行折成两行,实际文件中还是一行。

修改完毕後保存,然後执行命令vcvars32。

一切顺利的话应该给出一行结果:

SettingenvironmentforusingMicrosoftVisualC++tools.

如果你预设的DOS环境空间不足,这个BAT文件执行中可能导致环境空间overflow,此时应该在DOS窗口的“属性”对话框中找到“内存”页,

修改“初始环境”ComboBox,改为一个较大的值,如1280或2048。

然後再次开一个DOS窗口,运行vcvars32.bat。

2.进入到C:

\STL4VC\SRC目录中。

3.执行命令copyvc6.makMakefile

4.执行命令nmakecleanall

VC编译STLport的过程就更加漫长。

屏幕反反复复地显示似乎是同样的内容,请务必保持耐心,这实际上是在以不同编译开关建立不同性质的目标库。

5.经过一段漫长的编译之後,终於结束了。

现在你再执行命令

nmakeinstall

这次需要的时间不那麽长,但也要有点耐心。

stl使用:

tool->option->directory:

include:

C:

\STL4VC\stlport

tool->option->lib:

C:

\STL4VC\lib

将stlport的include和lib放在首位

在文件中include

使用时,std:

:

vector

需要加编译选项:

/GX/MDd,SGISTL中大量使用try..throw..catch,VC缺省情况下不支持此语法,/GX是要求VC++Compiler打开对异常处理语法的支持。

有关编译选项的含义,详细信息可以查询MSDN。

3.CORBA

dhw:

假定Corba放在C盘的Corba下:

增加:

ORBACUS_CONFIGC:

\Orbacus\ooc.conf

path中添加:

C:

\Orbacus\bin

lib中添加:

C:

\Orbacus\lib

include增加:

C:

\Orbacus\include

project->setting->link->object/lib中增加库:

ob.libjtc.lib

project->setting->C++->projectoption中增加:

/GR

server端需要修改_impl.h/_impl.cpp的变量及构造函数,需要实现interface中的方法;

对于interface中定义为in的变量,对于字符串,需要通过corba传递的必须使用CORBA:

:

string_dup()生成;

对于interface中定义为out的变量,生成的变量为_out型变量,在调用函数时,对应_out变量必须生成一个_var变量,作为参数传递进去,返回使用时需利用CORBA:

:

string_dup();

内存的释放使用

若CORBA程序使用mfc,则必须在CORBA生成的类中#include"stdafx.h":

否则会出现找不到文件尾的错误

run_by_ppoa(false):

是多线程模式,可以让界面刷新;若run_by_ppoa():

则界面不刷新

4.编程规范

【规则3-2-1】类名和结构名用大写字母开头的单词组合而成。

例如:

classNode;//类名

classLeafNode;//类名

【规则3-2-2】函数名第一个单词用小写字母开头,其余的单词第一个字母大写组合而成。

voiddraw(void);//函数名

voidsetValue(intvalue);//函数名

【规则3-2-3】变量和参数用小写字母开头的单词组合而成。

例如:

BOOLflag;

intdrawMode;

【规则3-2-4】常量全用大写的字母,用下划线分割单词。

例如:

constintMAX=100;

constintMAX_LENGTH=100;

【规则3-2-5】静态变量加前缀s_(表示static)。

例如:

voidInit(…)

{

staticints_initValue;//静态变量

}

【规则3-2-6】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

例如:

intg_howManyPeople;//全局变量

intg_howMuchMoney;//全局变量

【规则3-2-7】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。

例如:

voidObject:

:

SetValue(intwidth,intheight)

{

m_width=width;

m_height=height;

}

5.表单控件使用

ciw32.libcli.libws2_32.libGridDll.libobjectbase.libNormalClassDll.libqt-mt322.libqtmain.lib

projectsetting->C++->C++language选择enablerun-timetypeinformation

QT_DLL,QT_THREAD_SUPPORT,QT_NO_LIBRARY_UNLOAD

6.C++

C++中include注意不能够嵌套include!

!

!

 

7.在VC中导出C++类,以CInDLL类导出为例:

首先使用Wizard创建一个Win32Dynamic-LinkLibrary工程

在需要导出类的头文件中加入如下的代码:

#ifdef_CLASSINDLL  

#defineCLASSINDLL_CLASS_DECL__declspec(dllexport)  

#else  #defineCLASSINDLL_CLASS_DECL__declspec(dllimport)  

#endif  #endif//ClassInDLL_H  

将类定义改为:

classCLASSINDLL_CLASS_DECLCInDLL

{  CInDLL();  ...  

}

dbx使用指南

1:

实用命令

quit/q退出

q退出

runarg1arg2...用参数运行现有进程

r用上次的参数再次运行

stopat在第line行设断点

stopat在过程proc被调用处设断点

cont继续运行到记号(断点或其他)处

return执行完目前的进程返回

print...打印表达式的值

printf"string",exp,...用c语言的格式打印结果

where打印当前调试状态,包括当前进程等信息

func看当前运行进程名/移动到调用proc进程的母进程处

file查看的文件切换到file文件处

list,从file文件中列出从exp1行到exp2行

list:

列出file文件中从exp行开始的int行

whatis显示变量的类型

sh崭时进入sh状态

sh执行一shell命令

2:

常用命令说明

aliasname"string"把string内容定义为一缩略语name

helpsection寻找某指令的帮助

playbackinput从file中调入调试命令流

playbackoutput输出file中的调试命令流

recordinput把调试过程输出到file中

recordoutput把命令的运行输出保存到file中

history显示历史命令

hed编辑历史调试命令

!

运行历史命令流中第int个命令

!

-运行历史命令中倒数第int个命令

!

运行历史命令流中以string打头的命令

!

!

重复上一个命令

command;command...多调试命令间用";"隔开

step向前追踪步,进入线程

next向前追踪步,不进入线程

deleteall清所有断点

listobj列出目前使用的obj单元

listregions列出被用到的内存区

enable/disable恢复/禁用号断点

catch显示所有碰到的记号

contat运行直到line行

interceptall在所有例外处都中断

bxchat在所有出现char打头的异常处中断

kill杀死pid线程

goto从line行开始运行

stop当var产生变化时中断

stop当进入proc进程时中断

stop[var][at]if条件中断

trace当var变化时输出其原值和新值

trace当进入进程时打印出母进程和参数

whenif{command_list}当条件为真时执行命令列

whenat[if]{command_list}在遇到line行时如果条件为真执行命令列

duel一种比较好的变量输出方式

printregs输出所有寄存器的值

status当前状态

/向下寻找file中的string字符串

?

向上寻找file中的string字符串

set设定或显示系统参数值

 

VC编译优化设置

日期:

2004-08-26作者:

laiyiling来源:

浏览次数:

58

VC编译优化设置

VC-ProjectSetting-Debug-ProjectOption语法解释

-优化-

/O1最小化空间minimizespace

/Op[-]改善浮点数一致性improvefloating-ptconsistency

/O2最大化速度maximizespeed

/Os优选代码空间favorcodespace

/Oa假设没有别名assumenoaliasing

/Ot优选代码速度favorcodespeed

/Ob内联展开(默认n=0)inlineexpansion(defaultn=0)

/Ow假设交叉函数别名assumecross-functionaliasing

/Od禁用优化(默认值)disableoptimizations(default)

/Ox最大化选项。

(/Ogityb2/Gs)maximumopts.(/Ogityb1/Gs)

/Og启用全局优化enableglobaloptimization

/Oy[-]启用框架指针省略enableframepointeromission

/Oi启用内建函数enableintrinsicfunctions

-代码生成-

/G3为80386进行优化optimizefor80386

/G4为80486进行优化optimizefor80486

/GR[-]启用C++RTTIenableC++RTTI

/G5为Pentium进行优化optimizeforPentium

/G6为PentiumPro进行优化optimizeforPentiumPro

/GX[-]启用C++异常处理(与/EHsc相同)enableC++EH(sameas/EHsc)

/EHs启用同步C++异常处理enablesynchronousC++EH

/GD为WindowsDLL进行优化optimizeforWindowsDLL

/GB为混合模型进行优化(默认)optimizeforblendedmodel(default)

/EHa启用异步C++异常处理enableasynchronousC++EH

/Gd__cdecl调用约定__cdeclcallingconvention

/EHcextern“C”默认为nothrowextern"C"defaultstonothrow

/Gr__fastcall调用约定__fastcallcallingconvention

/Gi[-]启用增量编译enableincrementalcompilation

/Gz__stdcall调用约定__stdcallcallingconvention

/Gm[-]启用最小重新生成enableminimalrebuild

/GA为Windows应用程序进行优化optimizeforWindowsApplication

/Gf启用字符串池enablestringpooling

/QIfdiv[-]启用PentiumFDIV修复enablePentiumFDIVfix

/GF启用只读字符串池enableread-onlystringpooling

/QI0f[-]启用Pentium0x0f修复enablePentium0x0ffix

/Gy分隔链接器函数separatefunctionsforlinker

/GZ启用运行时调试检查enableruntimedebugchecks

/Gh启用钩子函数调用enablehookfunctioncall

/Ge对所有函数强制堆栈检查forcestackcheckingforallfuncs

/Gs[num]禁用堆栈检查调用disablestackcheckingcalls

-输出文件-

/Fa[file]命名程序集列表文件nameassemblylistingfile

/Fo命名对象文件nameobjectfile

/FA[sc]配置程序集列表configureassemblylisting

/Fp命名预编译头文件nameprecompiledheaderfile

/Fd[file]命名.PDB文件name.PDBfile

/Fr[file]命名源浏览器文件namesourcebrowserfile

/Fe命名可执行文件nameexecutablefile

/FR[file]命名扩展.SBR文件nameextended.SBRfile

/Fm[file]命名映射文件namemapfile

-预处理器-

/FI命名强制包含文件nameforcedincludefile

/C不吸取注释don'tstripcomments

/U移除预定义宏removepredefinedmacro

/D{=|#}定义宏definemacro

/u移除所有预定义宏removeallpredefinedmacros

/E将预处理定向到标准输出preprocesstostdout

/I添加到包含文件的搜索路径addtoincludesearchpath

/EP将预处理定向到标准输出,不要带行号preprocesstostdout,no#line

/X忽略“标准位置”ignore"standardplaces"

/P预处理到文件preprocesstofile

-语言-

/Zi启用调试信息enabledebugginginformation

/Zl忽略.OBJ中的默认库名omitdefaultlibrarynamein.OBJ

/ZI启用调试信息的“编辑并继续”功能enableEditandContinuedebuginfo

/Zg生成函数原型generatefunctionprototypes

/Z7启用旧式调试信息enableold-styledebuginfo

/Zs只进行语法检查syntaxcheckonly

/Zd仅要行号调试信息linenumberdebugginginfoonly

/vd{0|1}禁用/启用vtordispdisable/enablevtordisp

/Zp[n]在n字节边界上包装结构packstructsonn-byteboundary

/vm指向成员的指针类型typeofpointerstomembers

/Za禁用扩展(暗指/Op)disableextensions(implies/Op)

/noBool禁用“bool”关键字disable"bool"keyword

/Ze启用扩展(默认)enableextensions(default)

-杂项-

/?

/help打印此帮助消息printthishelpmessage

/c只编译,不链接compileonly,nolink

/W设置警告等级(默认n=1)setwarninglevel(defaultn=1)

/H最大化外部名称长度maxexternalnamelength

/J默认char类型是unsigneddefaultchartypeisunsigned

/nologo取消显示版权消息suppresscopyrightmessage

/WX将警告视为错误treatwarningsaserrors

/Tc将文件编译为.ccompilefileas.c

/Yc[file]创建.PCH文件create.PCHfile

/Tp将文件编译为.cppcompilefileas.cpp

/Yd将调试信息放在每个.OBJ中putdebuginfoinevery.OBJ

/TC将所有文件编译为.ccompile

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1