C++ 使用心得1Word格式文档下载.docx
- 文档编号:19143220
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:22.58KB
C++ 使用心得1Word格式文档下载.docx
《C++ 使用心得1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++ 使用心得1Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
//dw1->
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;
\
setLIB=C:
\STL4VC\lib;
%MSVCDir%\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:
\STL4VC\stlport
lib:
C:
\STL4VC\lib
将stlport的include和lib放在首位
在文件中include<
vector>
使用时,std:
vector<
int>
需要加编译选项:
/GX/MDd,SGISTL中大量使用try..throw..catch,VC缺省情况下不支持此语法,/GX是要求VC++Compiler打开对异常处理语法的支持。
有关编译选项的含义,详细信息可以查询MSDN。
3.CORBA
dhw:
假定Corba放在C盘的Corba下:
增加:
ORBACUS_CONFIGC:
\Orbacus\ooc.conf
path中添加:
\Orbacus\bin
lib中添加:
\Orbacus\lib
include增加:
\Orbacus\include
project->
object/lib中增加库:
ob.libjtc.lib
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++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>
在第line行设断点
proc>
在过程proc被调用处设断点
cont<
singal>
继续运行到记号(断点或其他)处
return执行完目前的进程返回
print<
exp>
...打印表达式的值
printf"
string"
exp,...用c语言的格式打印结果
where打印当前调试状态,包括当前进程等信息
func<
看当前运行进程名/移动到调用proc进程的母进程处
file<
file>
查看的文件切换到file文件处
list<
exp1>
<
exp2>
从file文件中列出从exp1行到exp2行
列出file文件中从exp行开始的int行
whatis<
variable>
显示变量的类型
sh崭时进入sh状态
sh<
shellcommand>
执行一shell命令
2:
常用命令说明
aliasname"
把string内容定义为一缩略语name
helpsection寻找某指令的帮助
playbackinput<
从file中调入调试命令流
playbackoutput<
输出file中的调试命令流
recordinput<
把调试过程输出到file中
recordoutput<
把命令的运行输出保存到file中
history显示历史命令
hed编辑历史调试命令
运行历史命令流中第int个命令
-<
运行历史命令中倒数第int个命令
string>
运行历史命令流中以string打头的命令
重复上一个命令
command;
command...多调试命令间用"
;
"
隔开
step<
向前追踪<
步,进入线程
next<
步,不进入线程
deleteall清所有断点
listobj列出目前使用的obj单元
listregions列出被用到的内存区
enable<
/disable<
恢复/禁用<
号断点
catch显示所有碰到的记号
contat<
运行直到line行
interceptall在所有例外处都中断
bxchat在所有出现char打头的异常处中断
kill<
pid>
杀死pid线程
goto<
从line行开始运行
stop<
var>
当var产生变化时中断
当进入proc进程时中断
stop[var][at<
]if<
条件中断
trace<
当var变化时输出其原值和新值
当进入进程时打印出母进程和参数
whenif<
{command_list}当条件为真时执行命令列
whenat<
[if<
]{command_list}在遇到line行时如果条件为真执行命令列
duel<
一种比较好的变量输出方式
printregs输出所有寄存器的值
status当前状态
/<
向下寻找file中的string字符串
?
向上寻找file中的string字符串
set设定或显示系统参数值
VC编译优化设置
日期:
2004-08-26作者:
laiyiling来源:
浏览次数:
58
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 使用 心得