C++ 使用心得1.docx
- 文档编号:6142473
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:22.58KB
C++ 使用心得1.docx
《C++ 使用心得1.docx》由会员分享,可在线阅读,更多相关《C++ 使用心得1.docx(12页珍藏版)》请在冰豆网上搜索。
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
stopat
cont
return执行完目前的进程返回
print
printf"string",exp,...用c语言的格式打印结果
where打印当前调试状态,包括当前进程等信息
func
file
list
list
whatis
sh崭时进入sh状态
sh
2:
常用命令说明
aliasname"string"把string内容定义为一缩略语name
helpsection寻找某指令的帮助
playbackinput
playbackoutput
recordinput
recordoutput
history显示历史命令
hed编辑历史调试命令
!
!
-
!
!
!
重复上一个命令
command;command...多调试命令间用";"隔开
step
next
deleteall清所有断点
listobj列出目前使用的obj单元
listregions列出被用到的内存区
enable
catch显示所有碰到的记号
contat
interceptall在所有例外处都中断
bxchat在所有出现char打头的异常处中断
kill
goto
stop当var产生变化时中断
stop
stop[var][at
trace当var变化时输出其原值和新值
trace
whenif
whenat
duel
printregs输出所有寄存器的值
status当前状态
/
?
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 使用心得1 使用 心得
![提示](https://static.bdocx.com/images/bang_tan.gif)