当前位置:文档之家› iTextSharp 使用详解

iTextSharp 使用详解

iTextSharp 使用详解
iTextSharp 使用详解

iTextSharp 使用详解(转)

PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下:

StreamWriter pPDF=new StreamWriter(filePath);

ArrayList xRefs=new ArrayList();

float yPos =0f;

long streamStart=0;

long streamEnd=0;

long streamLen =0;

string strPDFMessage=null;

//PDF文档头信息

strPDFMessage="%PDF-1.1\n";

ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);

strPDFMessage="1 0 obj\n";

ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="<< /Length 2 0 R >>\n";

ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="stream\n";

ConvertToByteAndAddtoStream(strPDFMessage);

……

看了上面的制作办法,我眼镜都摔坏了三幅,如果用上面这样原始的办法能制作出满意的PDF 文件,那一定是天才所为。后来,我从一个网站(网址:

https://www.doczj.com/doc/05534233.html,/index.html)中看到了专门制作PDF文件的控件的介绍,暗喜之余,立马下载试验,果然非常轻松地制作出了想要的PDF文件,因为网站为英文,内容又多,读起来非常费力,在解决了自己的问题后,看到许多网友还在为PDF文件制作而郁闷,遂决定将该内容翻译为中文,由于本人英语水平一般,许多地方又晦涩难懂,故翻译质量不是很满意,敬请斧正,但大部分能看懂。本文的目的一是解决部分网友的燃眉之急,二是抛砖引玉,如果哪位仁兄愿意将该网站中的内容准确翻译出来,则是天下之大幸。

要用本文的方法生成PDF文件,需要两个控件:itextsharp.dll和

ICSharpCode.SharpZipLib.dll,由于示例代码实在太多,我将代码全部整理出来,放在另外一个文件“示例代码.doc”中,所有这些资源,我均放在了本人的ftp站点

(ftp://202.107.251.26)上的“Pdf文件制作全攻略”文件夹中(文件夹中另外两个rar压缩文件为两个控件的源代码,供大家学习研究使用),你可以到这里下载相应的资源,或者直接到原网站下载。

为便于调试和叙述,所有例子均为DOS控制台程序,windows程序使用方法完全一样,按照下面的步骤创建一个可调试的项目:

1、打开VS2003;

2、单击菜单“文件”→“新建”→“项目”,在项目类型中选择“Visual C#项目”,在模板中选择“控制台应用程序”,输入文件名称如“MakePdf”,指定好存放路径,然后点确定按钮;

3、在“解决方案资源管理器”中右键单击“引用”,从弹出的菜单中选择“添加引用”,在“.NET”选项夹中选择“浏览”,添加前面提到的两个应用,如下图:

4、在代码窗口顶部添加两个引用:

using iTextSharp.text;

using iTextSharp.text.pdf;

至此,准备工作完毕。

第一部分iText的简单应用

第一章创建一个Document

利用iText五步创建一个PDF文件:helloword。

第一步,创建一个iTextSharp.text.Document对象的实例:

Document document = new Document();

第二步,为该Document创建一个Writer实例:

PdfWriter.getInstance(document, new FileStream("Chap0101.pdf",

FileMode.Create));

第三步,打开当前Document

document.Open();

第四步,为当前Document添加内容:

document.Add(new Paragraph("Hello World"));

第五步,关闭Document

document.Close();

完整的代码见示例代码0101。

在例中,不难看出,制作一个PDF文件是非常简单的。

注:如果你将例中“document.Add(new Paragraph("Hello World"));”中的字符串“Hello Word”换成中文,如“这是我的第一个PDF文件”,产生的结果一定让你大失所望,因为生成的PDF文件中并没有将中文显示出来,不要担心,在第9章中要专门讲解字体问题,中文显示也就迎刃而解了,如果不能正确显示中文,也就没有必要翻译本文了。

下面对这几步做详细介绍。

第一步创建一个Document实例:

iTextSharp.text.Document-object共有三个构造函数:

public Document();

public Document(Rectangle pageSize);

public Document(Rectangle pageSize,

int marginLeft,

int marginRight,

int marginTop,

int marginBottom);

第一个构造函数以A4页面作为参数调用第二个构造函数,第二个构造函数以每边36磅页边距为参数调用第三个构造函数

u 页面尺寸:

你可以通过指定的颜色和大小创建你自己的页面,示例代码0102创建一个细长的浅黄色背景的页面:

Rectangle pageSize = new Rectangle(144, 720);

pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);

Document document = new Document(pageSize);

通常,你不必创建这样的页面,而可以从下面页面尺寸中选择:

A0-A10, LEGAL, LETTER, HALFLETTER, _11x17, LEDGER, NOTE, B0-B5,

ARCH_A-ARCH_E, FLSA 和FLSE

大多数情况下使用纵向页面,如果希望使用横向页面,你只须使用rotate()函数:

Document document = new Document(PageSize.A4.rotate());

详细代码见示例代码0103。

u 页边距:

当创建一个文件时,你还可以定义上、下、左、右页边距:

Document document = new Document(PageSize.A5, 36, 72, 108, 180);

在示例代码0104中你可以看到该文档有一个0.5英寸的左边距和1英寸的右边距,上边距为1.5英寸,下边距为2.5英寸。

说明:

当创建一个矩形或设置边距时,你可能希望知道该用什么度量单位:厘米、英寸或象素,事实上,默认的度量系统以排版单位磅为基础得出其他单位的近似值,如1英寸=72磅,如果你想在A4页面的PDF中创建一个矩形,你需要计算以下数据:

21 厘米/ 2.54 = 8.2677 英寸

8.2677英寸* 72 = 595 磅

29.7 厘米/ 2.54 = 11.6929 英寸

11.6929英寸* 72 = 842 磅

默认边距为36磅即半英寸。

如果你修改了页面尺寸,仅仅影响到下一页,如果你修改了页边距,则影响到全部,故慎用。

关于页面的初始值,请参考第三步。

第二步创建Writer实例

一旦创建了document,我们可以创建该文档的多个Writer的实例,所有这些Writer实例均继承自抽象类“iTextSharp.text.DocWriter”。

同时还有另外一种情况,你可以用iTextSharp.text.pdf.PdfWriter产生文档PDF文件,如果你想创建一个TeX文档,你可以使用iTextSharp.text.TeX.TeXWriter包。

Writer类的构造函数是私有的,你只能通过下面的方法创建一个实例:

public static xxxWriter getInstance(Document document, Stream os);(xxx 是Pdf 或Xml)

你可以通过下面的方法创建一个实例:

PdfWriter writer = PdfWriter.getInstance(document, new

FileStream("Chap01xx.pdf"));

但是你几乎永远不会用到Writer实例(除非你想创建高级PDF或者希望用一些非常特殊的函数,如ViewerPreferences 或Encryption)。所以通过下面的办法得到实例已经足够了:PdfWriter.getInstance(document, new FileStream("Chap01xx.pdf"));

在第一步中创建一个文档时,第一个参数意义不大,第二个参数可以是任何一种流,到目前为止我们一直使用System.IO.FileStream将Document写入文件中,示例代码0105用到了System.IO.MemoryStream(这不是一个独立的例子,你必须在Servlet Engine中测试这些代码。

第三步打开Document

u 摘要

在你写入任何实际数据之前,你可能希望通过以下几种方法写入一些关于本文档的摘要:

public boolean addTitle(String title)

public boolean addSubject(String subject)

public boolean addKeywords(String keywords)

public boolean addAuthor(String author)

public boolean addCreator(String creator)

public boolean addProducer()

public boolean addCreationDate()

public boolean addHeader(String name, String content)

你可以选择自己的标题、主题、关键字、作者、创建程序,但以下产品信息将始终被添加:iTextSharp (或者iTextSharp的引用)和创建时间(实际上这两种方法是自动调用的)。

你还可以将自定义的名称添加为“报头信息”,但是这对于PdfWriter没有任何作用,如果看看

实例代码0101产生的pdf文件的“文档属性”,我们可以看到仅仅有PDF创建程序和产品日期,而示例代码0106的“文档属性”框中有更多的信息。

打开document前要做的事:

你只能在Open方法调用之前添加摘要,这是iText开发工具提供的一个选择。

在HTML中,报头信息被放在文档前面报头标识中间,调用Open方法将导致报头信息写入流,因而在Document被打开后无法更改这些数据。

PDF报头信息不包括摘要,看起来有类似于:

%PDF-1.2

该行显示生成的文档是一个版本为1.2的PDF格式的文件,在PDF中,摘要保存在PdfInfo

对象中,当文档关闭时已经写入PdfWriter中了,因此,没有关于为什么不能修改库来满足任何时候添加或更改摘要的技术原因

u 页面初始化

Open方法在不同的Witer中同时会产生初始化事件,举例来说,如果你需要一个水印或者页眉页角对象出现在文档第一页的开始处,你需要在打开文档前添加这些,同样的用于设置该文档其他页水印、页眉、页角、页数和尺寸。

当调用下列方法:

public bool setPageSize(Rectangle pageSize)

public bool Add(Watermark watermark)

public void removeWatermark()

setting Header property

public void resetHeader()

setting Footer property

public void resetFooter()

public void resetPageCount()

setting PageCount property

产生的结果只能在下一个新页中看到(当在本页调用初始化方法时),代码见示例代码0107,你必须要准备一张名为watermark.jpg的图片,如下图:

u 阅读器参数:

你可以通过下面的办法为PDF文件指定一些阅读器(如Adobe Reader) 参数:

public void setViewerPreferences(int preferences)

在示例代码0108中,指定了下面一些参数:

writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);

writerB.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);

writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs);

正如你所看到的,参数可以使用以下一些常量:

l 文件被打开时,页面布局用到下面的其中一个:

PdfWriter.PageLayoutSinglePage –同时只显示一个页面

PdfWriter.PageLayoutOneColumn –单列显示

PdfWriter.PageLayoutTwoColumnLeft –双列显示,奇数页在左

PdfWriter.PageLayoutTwoColumnRight -双列显示,奇数页在右

l 文件打开时,页面模式用到下面其中之一:

PdfWriter.PageModeUseNone –既不显示大钢也不显示缩略图

PdfWriter.PageModeUseOutlines –显示大纲

PdfWriter.PageModeUseThumbs –显示缩略图

PdfWriter.PageModeFullScreen –全屏模式,没有菜单、windows控件或者其他任何windows可见控件

l PdfWriter.HideToolbar –当文档激活时,是否隐藏阅读程序(如Adobe Reader)的工具条

l PdfWriter.HideMenubar -当文档激活时,是否隐藏阅读程序的菜单.

l PdfWriter.HideWindowUI -当文档激活时,是否隐藏阅读程序的界面元素,如滚动条、导航条等,而仅仅保留文档显示

l PdfWriter.FitWindow –是否调整文档窗口尺寸以适合显示第一页。

l PdfWriter.CenterWindow –是否将文档窗口放到屏幕中央

l 在全屏模式下,指定如何显示界面元素(选择一个)

PdfWriter.NonFullScreenPageModeUseNone -既不显示大钢也不显示缩略图PdfWriter.NonFullScreenPageModeUseOutlines –显示大钢

PdfWriter.NonFullScreenPageModeUseThumbs –显示缩略图

说明:你只能在类PdfWriter中调用这些方法。

u 加密

打开文档之前还要做的一件事情就是加密(如果你希望该文档加密),要达到这个目的,你可以使用下面的方法:

public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);

strength 是下面两个常量之一:

PdfWriter.STRENGTH40BITS: 40 位

PdfWriter.STRENGTH128BITS: 128位(Acrobat Reader 5.0及以上版本支持) UserPassword和ownerPassword 可以为空或零长度,这种情况下,ownerPassword 将被随机的字符串代替

Permissions 为下列常量之一:

PdfWriter.AllowPrinting

PdfWriter.AllowModifyContents

PdfWriter.AllowCopy

PdfWriter.AllowModifyAnnotations

PdfWriter.AllowFillIn

PdfWriter.AllowScreenReaders

PdfWriter.AllowAssembly

PdfWriter.AllowDegradedPrinting

该功能参见示例代码0109和示例代码0110。

writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowCopy);

示例代码0109产生的文件能够被打开而无须密码,但用户不能打印、修改本文档。

writer.setEncryption(PdfWriter.STRENGTH128BITS, "userpass", "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);

打你试图打开示例代码0110产生的文件时,将要求输入密码('userpass'),因为添加了AllowPrinting参数,你可以打印该文档而不会发生任何问题。

第四步添加内容

在解释第一步到第三步的不同示例中,你可能已经遇到了一些对象如Phrase, Paragraph等在接下来的几章中,所有这些问题都将得到详细解释。

有时你可能想一个writer故意忽略document产生的行为,如示例代码0111:

当我们创建了两个writer:writerA 和writerB:

PdfWriter writerA = PdfWriter.getInstance(document, new

FileStream("Chap0111a.pdf", FileMode.Create));

PdfWriter writerB = PdfWriter.getInstance(document, new

FileStream("Chap0111b.pdf", FileMode.Create));

我们可以创建两个有细微差别的文档:

writerA.Pause();

document.add(new Paragraph("This paragraph will only be added to

Chap0111b.pdf, not to Chap0111a.pdf"));

writerA.resume();

你可以比较文件: Chap0111a.pdf和Chap0111b.pdf的区别

第五步,关闭document

关闭document 非常重要, 因为它将关闭正在运行的Writer并将内容写入文件,该方法在最后被调用,你应该总是要关闭文档。

高级话题:阅读PDF文件

该部分内容介绍了iText只能产生PDF格式的文件而不能解析PDF格式文件,不再翻译。

第二章块、短句和段落

块(Chunk)是能被添加到文档的文本的最小单位,块可以用于构建其他基础元素如短句、段落、锚点等,块是一个有确定字体的字符串,要添加块到文档中时,其他所有布局变量均要被定义。下面一行中,我们创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块:

Chunk chunk = new Chunk("Hello world",

FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, new Color(255, 0, 0)));

u 典型字体1:

在本指南中,除了第九章外(你可以在这里学会使用其他字体),我们将始终使用典型字体1,

这些是不同的典型字体1:

· Courier (该字体定宽)

· Helvetica

· Times Roman

· Symbol

· ZapfDingbats

u 下划线/删除线

如果你希望一些块有下划线或删除线,你可以通过改变字体风格简单做到:

Chunk chunk1 = new Chunk("This text is underlined",

FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));

Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC |

Font.STRIKETHRU));

u 上标/下标

在块中有几个方法可以调用,其中大部分将在接下来的章节中介绍,本章中只介绍一个方法setTextRise(float f). 你可以使用该方法在上标或下标中写块。

u 块的背景

如果你想改变块的背景,你可以使用方法setBackground(Color color). 这将在块文本的下面添加一个彩色矩形:

ck.setBackground(new Color(0xFF, 0xFF, 0x00));

在示例代码0101中,你可以概览典型字体1和一个使用setTextRise, setBackground等方法的的例子。

短句

短句(Phrases)是一系列以特定间距(两行之间的距离)作为参数的块,一个短句有一个主字体,但短句中的一些块具有不同于主字体的字体,你有更多的选择去创建短句,一些具体使用参见代码0202。

u 古希腊语

因为古希腊语经常使用,在类Phrase的构造函数中有一个特征:将一个字符串作为参数(如果你想避免这种情况,你只能使用块工作而不能使用字符串),正如你在示例代码0203中看到的,这个特征自动地将913至937(除903)和945至969(古希腊的ASCII值)范围内的所有字体改为希腊符号。

u 非主要性

与其说这是一个特征,不如说是一个缺陷,但无论如何,这使创建一个非主要性的短句或段落成为可能,这将产生一个由下向上书写的临时作用(参见示例代码0204)。如果你想在一页中将一些位置移动到上面时可能有用。

说明,当你穿越上边届时无法检查,也没有办法让你回到前一页。

段落

段落是一系列块和(或)短句。同短句一样,段落有确定的间距。用户还可以指定缩排;在边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加到文档中的每一个段落将自动另起一行。有几种办法建立一个段落,如:

Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p3 = new Paragraph("This is my third paragraph.",

FontFactory.getFont(FontFactory.HELVETICA, 12));

所有有些对象将被添加到段落中:

p1.add("you can add strings, "); p1.add(new Chunk("you can add chunks "));

p1.add(new Phrase("or you can add phrases."));

说明:一个段落有一个且仅有一个间距,如果你添加了一个不同字体的短句或块,原来的间距仍然有效,你可以通过SetLeading来改变间距,但是段落中所有内容将使用新的中的间距。见示例代码0205。

u 保持段落的整体性

在示例代码0206中,我们使用了setKeepTogether(true)方法来试图将一个段落放在同一页中,该方法并不是始终有效,举个例子,第一段不能刚好在一页中,于是被分成了两部分。第二段被放置在第二页,但第三段顺沿到了第三页上。

字体的延续

你应该掌握字体延续的一些规则,这些规则的应用见示例代码0207,当我们将一些内容用指定的字体(非默认字体)创建一个短句或者段落后再添加更多内容时,初始对象的字体风格将被延续,请看“Hello 1!”和“Hello 2”:

Phrase myPhrase = new Phrase("Hello 2! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ", new Font(Font.HELVETICA, 8, Font.ITALIC)));

myPhrase.Add(new Phrase("This is the end of the sentence.\n", new

Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

我们由Times New Roman 粗体字开始,添加一些文本使用Helvetica字体而不指定风格,我们发现文本被改变成了粗体,当我们再加一些文本使用Times New Roman字体和斜体风格,结果变成了粗斜体。

如果我们使用FontFactory来创建字体,字体风格不会被延续,因为FontFactory使用了另外的技术构建一个字体:

myPhrase = new Phrase("Hello 1bis! ",

FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ",

FontFactory.getFont(FontFactory.HELVETICA, 8, Font.ITALIC)));

myPhrase.Add(new Phrase("This is the end of the sentence.\n",

FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.ITALIC))); document.Add(myPhrase);

在上面的代码中,使用Helvetica字体的文本风字体没有指定(既不是粗体也不是斜体)。采用Times New Roman的额外文本仅仅显示为斜体。

你也看到我们添加了一个段落,添加该段落就如同一个短句。

Paragraph myParagraph = new Paragraph("Hello 1! ", new

Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myParagraph.Add(new Paragraph("This is the end of the

sentence.",FontFactory.getFont(new Font.TIMES_NEW_ROMAN, 8))); document.Add(myParagraph);

你可以不这样做,但将失去字体风格的延续,首先不用任何字体创建段落(例中我们仅仅给字体出间距为1.5倍),然后添加内容的不同部分。

myParagraph = new Paragraph(12);

myParagraph.Add(new Paragraph("Hello 3! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myParagraph.Add(new Paragraph("This is the end of the sentence.", new

Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myParagraph);

如果你使用了Phrase对象,你同样会失去字体风格的延续:

myPhrase = new Phrase(12);

myPhrase.Add(new Phrase("Hello 4! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myPhrase.Add(new Phrase("This is the end of the sentence.",

newFont(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

u 更改分割符

通常,当文本不能放在一行时,文本将被分割成不同的部分,iText首先会查找分割符,如果没有找到,文本将在行尾被截断。有一些预定的分割符如“ ”空格和“-”连字符,但是你可以使用setSplitCharacter方法来覆盖这些默认值。在示例代码0208中,你可以看到当到达行尾时一个块是如何被分割的。然后分隔符被改成点“.”,该行在该字符处被分割。

第三章锚点、列表和注释

锚点

我们都知道HTML中的超文本链接,当我们点击某些语句,你能够跳转到网上的其他页。在PDF 中也可以实现这种功能。事实上,在第十一章整个章节中有关于PDF链接的介绍,但这是iText 的更高级的应用,本章中我们处理简单的iText。

如果你想在文档中添加一个外部链接(例如使用URL链接到WEB上的其他文档),你可以简单地使用Anchor对象,它派生于Phrase对象,使用方法相同。只有两种额外方法定义两种额

CodeBlocks中文版使用手册

C o d e B l o c k s中文版使 用手册 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

CodeBlocks中文版使用手册 工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio。不可否认,VS很好很强大,用户体验非常好。但VisualStudio也是有缺点的:它非常庞大;只支持VC,不支持其他的编译器;VS只能在windows下跑,在其他os上就无用武之地;VS是要钱的,而且费用不非(Express版本免费)。Code::Blocks是一个非常优秀的工具,如果您正在寻找VisualStudio之外的,开源、免费、轻便、支持多种编译器、跨平台的C/C++ IDE,那么Code::Blocks就是一个很好的选择。 1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面: 管理(Management):管理窗口包含Project视图与Symbols视图。Project视图显示当前CodeBlocks打开的所有项目(译者注:类似与VS解决方案资源管理器);Symbols视图显示项目中的标识符:类,函数、变量等信息(译者注:类似与VS的类视图)。 代码编辑器:支持代码折叠,关键字高亮显示。上图main.cpp正在被编辑。 打开文件列表:显示当前在代码编辑器中打开的所有文件列表。 上图中打开的文件列表为:main.cpp, person.cpp, person.hpp

代码段(CodeSnippets):管理常用的代码段、常用文件链接(links to files)与URL。可以通过菜单 View->CodeSnippets 来显示该面板。 日志和其他:这个窗口用于输出日志信息,显示查询结果等等。 状态栏提供了以下这些信息: 编辑器中打开文件的绝对路径; 文件的编码类型; 光标所在的行与列; 当前的键盘模式(insert 或者 overwrite); 当前的文件状态。被修改过的(但尚未保存)文件将被标记为“modified”,否则这里为空; 文件操作的权限。如果文件是只读的,这里将会显示“Read only”,在 Open files list中,该文件会使用一个加琐的图标来显示; 个性化配置名称; CodeBlocks提示了非常灵活和强大的项目管理功能。下文将介绍项目管理的一些常用功能。 1.1 项目视图(Project View)

CodeBlocks教程

特别说明目录 封皮..............................................................................................................................0目录 (1) 前言 (2) 1.安装Code::Blocks (3) 1.1下载……………………………………………………………………………………….….…………. .3 1.2安装 (3) 2. Code::Blocks 的编程环境配置 (7) 2.1环境 (7) 2.2编辑器 (12) 2.3编译器和调试器 (13) 3.编写程序 (17) 3.1创建一个工程 (17) 3.2添加和删除文件 (20) 3.3编辑文件 (25) 3.4编译程序 (30) 3.5调试程序 (43) 3.6阅读别人编写的程序 (74) 4.附录 (79) 4.1Linux 下安装Code::Blocks (79) 4.2 Mac OS X 下安装Code::Blocks (80) 4.3 Code::Blocks 搭配高版本gcc 编译器 (80) 4.4安装配置boost (82) ...........................................................................87...................................................................................

前言 用高级计算机语言,例如C、C++,编写的程序,需要经过编译器编译,才能转化成机器能够执行的二进制代码。然而,把头脑中的思想转变成能够正常工作的计算机程序需要付出一定的努力和时间,因为为了让程序能够达到我们想要的结果,我们往往需要反复修改代码。本书的目的是帮助初学者学习组织程序编码逐步隔离并发现程序中的逻辑错误。通过本书,您可以学会怎么一步步的跟踪代码,找到问题出在什么地方,搞明白为何您的程序不能正常运行,这个过程称谓调试程序。手工跟踪能够有效的帮助初学者找到bug出在什么位置,消除bug,让程序正常运行。自动化的工具同样也能够帮助您跟踪程序,尤其当程序很复杂时效果更加明显,这种工具叫做调试器。调试器能够让运行中的程序根据您的需要暂停,查看程序怎么运作的。有些调试器是以命令行的形式工作的,较新的调试器有些具备好的图形界面,调试器能够方便的帮助您看到您定义的变量状态。基于图形界面的调试器是集成开发环境(IDE,即Integrated Development Environment)的一部分。本书的作用就是帮助您学习使用这种环境以便更好的掌握编程技巧。 一个调试器并不能解决您程序中出现的问题,它仅仅是一种帮助您编程的工具。您首先应该运用您手中的纸和笔分析程序,搞清到底怎么回事,一旦确定错误大致出在什么位置,便可以用调试器观察您的程序中特定变量的值。通过观察这些代码,可以了解到您的程序是怎么一步步执行的。 C/C++的IDE非常多,对于学习C/C++语言的朋友而言,用什么IDE可能并不重要,重要的是学习C/C++语言本身,不过,会用一款自己习惯的IDE进行程序的编写和调试确实很方便。 本书主要论述一款开源、免费、跨平台的集成开发环境Code::Blocks的安装、配置、以及程序的调试和编译等。Code::Blocks支持十几种常见的编译器,安装后占用较少的硬盘空间,个性化特性十分丰富,功能十分强大,而且易学易用。我们这里介绍的Code::Blocks集成了C/C++编辑器、编译器、和调试器于一体,使用它可以很方便的编辑、调试和编译C/C++应用程序。Code::Blocks具有很多实用的个性化特性,这里只会简单介绍少数几个常用的特性。 我们希望本书能够帮助您体验编程的乐趣的同时也能帮助您提高调试和编写程序的基本功。 如欲了解更多有关Code::Blocks的信息,请访问Code::Blocks的官方网站https://www.doczj.com/doc/05534233.html,。

CoeBlocks详细使用手册

3.4.5。每个版本之间的使用可能会有细微的差别。Code::Blocks 手册Version 1.0 感谢CodeBlocks项目组: Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. 1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面: 管理(Management):管理窗口包含Project视图与Symbols视图。Project视图显示当前CodeBlocks打开的所有项目(译者注:类似与VS解决方案资源管理器);Symbols视图显示项目中的标识符:类,函数、变量等信息(译者注:类似与VS的类视图)。 代码编辑器:支持代码折叠,关键字高亮显示。上图main.cpp正在被编辑。 打开文件列表:显示当前在代码编辑器中打开的所有文件列表。上图中打开的文件列表为:main.cpp, person.cpp, person.hpp 代码段(CodeSnippets):管理常用的代码段、常用文件链接(links to files)与URL。可以通过菜单View->CodeSnippets 来显示该面板。 日志和其他:这个窗口用于输出日志信息,显示查询结果等等。 状态栏提供了以下这些信息: 编辑器中打开文件的绝对路径; 文件的编码类型; 光标所在的行与列; 当前的键盘模式(insert 或者overwrite); 当前的文件状态。被修改过的(但尚未保存)文件将被标记为“modified”,否则这里为空; 文件操作的权限。如果文件是只读的,这里将会显示“Read only”,在Open files list中,该文件会使用一个加琐的图标来显示; 个性化配置名称; CodeBlocks提示了非常灵活和强大的项目管理功能。下文将介绍项目管理的一些常用功能。 1.1项目视图(Project View) 在CodeBlocks中,Project的源文件(如C/C++的源文件及其对应的头文件)和编译属性设置信息都保存在.cbp文件里。可以通过菜单[File–>Project]启动工程创建向导来创建新的Project,然后通过管理窗口的上下文菜单[Add files](译者注:上下文菜单,指当前窗口中选中目标项目,然后右键显示的菜单)向Project中添加文件。CodeBlocks会自动根据文件的后缀将它们放入不同的类别文件夹中(译者注:这个文件夹是虚拟的,实际并不存在)。下面是默认的分类: Sources:包含源文件,后缀为*.c、*.cpp; ASM Sources:包括汇编源文件,后缀一般为*.s、*.S、*.ss、*.asm; Headers:包括头文件,后缀一般为*.h、*.hpp;

codeblock超级经典教程

Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境. Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受https://www.doczj.com/doc/05534233.html,的庞大和高昂的价格。 主要特点Code::Blocks提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK 应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin

codeblocks-10.05mingw-setup.exe27 May 201074.0 MB BerliOS windows操作系统提供两个版本一个不带编辑器与一个带编辑器(mingw) 一.运行安装程序 3.1 步中,下载得到一个执行的文件,双击后运行,请按照以下说明进行安装。 1选择“Full/完整”安装,以免重要插件没有被安装上。 (图1:选择完整安装) 2安装目标路径,不要带有空格,或者汉字 2这一点并不是Code::Blocks的限制,而是因为mingw32里的一些命令行工具,似乎对长目录或带空格的目录支持有点小问题,我估计汉字目录也会出问题,但没试过。一句话,就装在根目录下的X:\CodeBlocks 即可。比如我是安装在E:\CodeBlocks下。

(图2:安装在根目录下的CodeBlocks子目录) 实现中文界面 实现中文界面,包括两个步骤。最主要的是安装其中文简体语方包。然后是安装今日提示英中双语版文件。前一文件由本站提供改进,后一文件由本站在原英文版上自行提供。 如果您正在使用CodeBlocks,请确保先退出该程序。 3安装中文语言包 首先,请在X:\CodeBlocks\share\CodeBlocks\ 建立一个子文件夹:locale,注意locale 全为小写字母。我对简体汉字的语言包做了较大改进,不过仍然没改完,另外,一些插件在当前版本本来就无法汉化的,所以还有一部分内容是英语的。繁体部分我没有改动。 点击下载d2school版Code::Blocks语言包。 下载后,请解压到前述的locale目录下,则locale目录下,应出现zh_CN和zh_TW两个子目录。重新启动Code::Blocks,点击主菜单的“Settings”,选择“Enviornment”。出现的对话框中,左边选中“View”,右边打勾“Internationalization (needs restart)”,并在后面的复合框中选中“Chinese (Simplified)”。确认退出本对话框。 (图4:设置简体语言包) 本项需要重启Code::Blocks方能起作用,所以请先退出Code::Blocks。

超级详细codeblocks的使用

说明:笔者打算用两篇日志来完成对Code::Blocks手册前二章的编译,分别是:使用篇、插件篇。本文是第一篇:Code::Blocks使用篇。原手册第三章介绍Code::Blocks变量、脚本的使用,第四章介绍如何从源码编译Code::Blocks,这两章内容不是很多,笔者认为对大部分用户帮助不是不大,暂不打算翻译。笔者使用的Code::Block版本是nightly builds,svn6088(可以在这个地址下载:https://www.doczj.com/doc/05534233.html,/index.php/topic,11875.0.html )。使用的编译器是GCC3.4.5。每个版本之间的使用可能会有细微的差别。因为水平有限,难免出错,欢迎指正! Code::Blocks 手册Version 1.0 感谢CodeBlocks项目组: Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. 1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面:

CodeBlocks详细使用手册(免费)

笔者打算用两篇日志来完成对Code::Blocks手册前二章的编译,分别是:使用篇、插件篇。本文是第一篇:Code::Blocks使用篇。原手册第三章介绍Code::Blocks变量、脚本的使用,第四章介绍如何从源码编译Code::Blocks,这两章内容不是很多,笔者认为对大部分用户帮助不是不大,暂不打算翻译。笔者使用的Code::Block版本是nightly builds,svn6088(可以在这个地址下载:https://www.doczj.com/doc/05534233.html,/index.php/topic,11875.0.html )。使用的编译器是GCC3.4.5。每个版本之间的使用可能会有细微的差别。 Code::Blocks 手册Version 1.0 感谢CodeBlocks项目组: Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. 1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面:

CodeBlocks使用方法

CodeBlocks使用方法 1、下载CodeBlocks.rar,并把它解压到当前系统分区中的某一根目录下,比如F:\,注意:不要解压到含有中文或空格的目录中(尤其是不能解压到桌面)! 2、进入“F:\codeblocks”目录,并双击“codeblocks.exe”可执行文件,启动它。 3、现在我们学习如何通过向导创建一个控制台应用,并且直接编译、运行它。 步骤1:Code::Blocks主菜单“文件”→“新建”→“项目…”弹出如下对话框中,开始“Console Application”。 (图1开始“Console Application”向导) 步骤2:如果出现向导的“欢迎界面”,直接点击下一步。 步骤3:出现用于选择语言的对话框,选择“C++”,下一步。 步骤4:出现选择文件夹的对话框,在“项目标题”中输入“HelloWorld”。两单词连写,不包括双引号。本步操作结果将会在“我的文档”中“CodeBlocks Projects”目录下,新建一个名称为“HelloWorld”的目录。 步骤5:出现编译器选项对话框。在“编译器”中选择“GNU GCC Compiler”。其下则默认“Debug”与“Release”两个编译目标都是默认选中的,不必改变,通常我们都需要调试和发行两个版本,就算是一个Hello Word的简单程序。按下“完成”。 步骤6:必要时按下“Shift+F2”,出现“Management”侧边栏,如下图:

(图8项目管理器) 步骤7:双击上图所示的main.cpp,将打开该文件。暂时我们还并不需要修改它。步骤8:主菜单“构建”→“构建”。或者,用热键Ctrl+F9,完成编译。 步骤9:再按Ctrl+F10,运行。(9、10步也可以通过工具栏实现,请读者自行熟悉)。下面是运行结果图: 步骤10:其中“Hello world!”是我们程序的输出。下面的内容是Code::Blocks 为了方便我们调试而增加的内容(本来该程序运行后,就直接退出),包括显示了程序运行用时,以及提示“按任意键退出”。 4、我们需要一款好的IDE,希望它不仅有助于我们学习C++,也应该是我们今后编写C++应用程序时的上好工具。目前我推荐使用Code::Blocks,它除了具备IDE典型的集编辑、编译、调试在一身的功能之外,还具备以下特点。 (1)开源 开源不仅仅意味着免费,它还意味着更好的学习途径。 (2)跨平台 包括Windows、Linux、Mac OS等。 (3)跨编译器 包括gcc/g++、Visual C++、Borland C++、Intel C++等超过20多款编译器。同时它也支持多种语言的编译,包括D语言等(当然,Code::Blocks主要支持C++语言)。 (4)插件式框架 Code::Blocks采用开放体系,有着良好的功能扩展能力。 (5)采用C++写成 无须安装额外的,往往是庞大的运行环境。再者,一款C++的IDE采用C++写成,这是最自然不过的事了。 (6)升级频繁与维护良好 差不多每个月都有升级包,有时甚至数天就有新的升级包可供下载。另外其官方论坛也相对活跃,除了提出BUG以外,来自世界各地热心维护者往往第一时间提供不同操作系统上的安装包。 (7)内嵌可视化GUI设计 IDE的图形界面,采用wxWidgets,同时也支持使用wxWidgets进行可视化图形界面设计。

在CodeBlocks中建立多文件项目的方法

在CodeBlocks10.05中建立C语言多文件项目的方法 1.点击文件(F)-新建-项目…菜单命令,进入如下界面: 图1新建项目对话框 2.选择Console application(控制台应用程序),然后单击“出发”按钮,进入Console application向导: 图2控制台应用程序向导之一图3控制台应用程序向导之二 3.单击“下一步”,选择使用语言为:C,进入“下一步”,输入“项目标题”及“项目所在的父文件夹”等信息;

图4控制台应用程序向导之三图5控制台应用程序向导之四4.单击“下一步”,设置编译配置如下: 图6控制台应用程序向导之五 5.单击“完成”,进入编辑界面。 图7编辑界面

6.修改编辑main.c文件即可。也可用“新建-文件”菜单新建多个C/C++source文件添加到这个项目中。 图8新建C语言源程序向导 可用下面三个文件测试: /*main.c*/ #include #include extern int a; int m=30; void funA(void); void funB(void); int main(void) { funA(); funB(); printf("Hello!Running main()Now!\n"); printf("a=%d m=%d in main()\n",a,m); return0; }

/*f1.c*/ void funB(void) { int b=20; printf("Hello!Running funB()Now!\n"); printf("b=%d in funB()\n",b); return; } /*f2.c*/ #include extern int m; int a=50; void funA(void) { printf("Hello!Running funA()Now!\n"); printf("a=%d m=%d in funA()\n",a,m); return; } 7.编译构建与单文件类似,不再重述。

codeblock使用方法

C++集成设计环境——Code::Blocks 安 装 1.版本说明 先简要说明一下Code::Blocks的版本号。 Code::Blocks采用两种方法的版本命名,这一点大家需要了解,以免搞胡涂了。 对于正式版,Code::Blocks采用“年份.月份”的方法。Code::Blocks至本文发表时,只出过一个正式版,是2008年2月出来的,所以这个正式版的版本号为:8.02。 对于非正式版,Code::Blocks采用其源代码管理工具svn的代码版本号。它是一个整数。 2.安装主要步骤 当前,要成功完成安装Code::Blocks,需要以下几个步骤: ?安装Code::Blocks第一个正式版本 ver 8.02。 ?安装Code::Blocks的最新升级包。 ?安装Code::Blocks的简体中文语言包。 ?完成Code::Blocks的基本配置。 刚一看似乎很复杂,其实不然。 另外,本文仅讲解如何在windows下安装。 3.安装正式发行版 Code::Blocks 的第一个正式发行版 8.02 (2008年2月发行) 是必须的。升级包必须在发行版安装后,才能安装。 3.1 下载正式版安装程序。 为了方便各位,大家可以直接用以下链接进行下载,可以使用相关下载专用软件以加快下载。 http://download.berlios.de/codeblocks/codeblocks-8.02mingw-setup.exe 或者http://download2.berlios.de/codeblocks/codeblocks-8.02mingw-setup.exe

3.2 卸载mingw32原有安装 根据实际情况,本步您可能并不需要执行。 Code::Blocks支持多种编译器,但我们主要讲Windows下的mingw32 g++编译器。因此需要安装mingw32。前面下载的安装程序已经自带有完整的mingw32环境。mingw32是g++环境在windows下的一个实现。为了避免版本与路径冲突,最好不要在一台机器上安装两个mingw32。所以本步要求检查一下。如果您以前有用过Dev C++之类也采用mingw32的IDE,那您最好先卸载了它们。如果您不懂什么叫mingw32,那估计你的机器就是没能安装过吧。那这一步跳过。 3.3 运行安装程序 3.1 步中,下载得到一个执行的文件,双击后运行,请按照以下说明进行安装。 3.3.1 选择“Full/完整”安装,以免重要插件没有被安装上。 (图1:选择完整安装) 3.3.2 安装目标路径,不要带有空格,或者汉字 这一点并不是Code::Blocks的限制,而是因为mingw32里的一些命令行工具,似乎对长目录或带空格的目录支持有点小问题,我估计汉字目录也会出问题,但没试过。一句话,就装在根目录下的 X:\CodeBlocks即可。比如我是安装在E:\CodeBlocks下。 (图2:安装在根目录下的CodeBlocks子目录) 4.安装升级包 Code::blocks的网站看不去不怎么更新,其实程序的主要都在它的论坛中的nightly builds子论坛中更新。 4.1 下载最新升级包

CodeBlocks详细使用手册

Code::Blocks使用手册 Code::Blocks手册前二章的编译,分别是: 使用篇、插件篇。 本文是第一篇:Code::Blocks使用篇。 原手册第三章介绍Code::Blocks变量、脚本的使用, 第四章介绍如何从源码编译Code::Blocks,这两章内容不是很多, 笔者认为对大部分用户帮助不是不大,暂不打算翻译。 笔者使用的Code::Block版本是nightly builds,svn6088 使用的编译器是GCC3.4.5。每个版本之间的使用可能会有细微的差别。 Code::Blocks 手册Version 1.0 感谢CodeBlocks项目组: Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. 1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面:

使用Codeblocks创建OpenGL工程

Using OpenGL & GLUT in Code::Blocks Download Code::Blocks https://www.doczj.com/doc/05534233.html,/~goetz/codeblocks/ Download the GLUT bin file (first download link) from: https://www.doczj.com/doc/05534233.html,/~nate/glut.html ?After you download and open the GLUT bin zip file, you will need to: ?Copy glut32.dll to c:\windows\system, ?Copy glut32.lib to c:\program files\mingw\lib, and ?Copy glut.h to c:\program files\mingw\include\GL. ?These are default locations, your paths may be different. But basically, you place the .lib and .h files in the location of your compiler (in this case mingw). The .dll file goes in the windows system directory. Now you are ready to start Code::Blocks and make a new project. Open up Code::Blocks. Start a new Project by going to File, New, Project.

codeblock用法

来源:https://www.doczj.com/doc/05534233.html,/JGood/archive/2010/01/25/5252119.aspx 原手册下载:https://www.doczj.com/doc/05534233.html,/docs/manual_en.pdf 译者:JGood(https://www.doczj.com/doc/05534233.html,/Jgood ) 译者言:工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio。不可否认,VS很好很强大,用户体验非常好。但VisualStu dio也是有缺点的:它非常庞大;只支持VC,不支持其他的编译器;VS只能在windows下跑,在其他os 上就无用武之地;VS是要钱的,而且费用不非(Express版本免费)。Code::Blocks是一个非常优秀的工具,如果您正在寻找VisualStudio之外的,开源、免费、轻便、支持多种编译器、跨平台的C/C++ IDE,那么Code::Blocks就是一个很好的选择。 说明:笔者打算用两篇日志来完成对Code::Blocks手册前二章的编译,分别是:使用篇、插件篇。本文是第一篇:Code::Blocks使用篇。原手册第三章介绍Code::Blocks变量、脚本的使用,第四章介绍如何从源码编译Code::Blocks,这两章内容不是很多,笔者认为对大部分用户帮助不是不大,暂不打算翻译。笔者使用的Code::Block版本是nightly builds,svn6088(可以在这个地址下载:http://forums.codeblo https://www.doczj.com/doc/05534233.html,/index.php/topic,11875.0.html)。使用的编译器是GCC3.4.5。每个版本之间的使用可能会有细微的差别。因为水平有限,难免出错,欢迎指正!

codeblock使用手册

1 CodeBlocks项目管理 下图是CodeBlocks运行时的用户界面: ?管理(Management):管理窗口包含Project视图与Symbols视图。Project 视图显示当前CodeBlocks打开的所有项目(译者注:类似与VS解决方案资源管理器);Symbols视图显示项目中的标识符:类,函数、变量等信息(译者注:类似与VS的类视图)。 ?代码编辑器:支持代码折叠,关键字高亮显示。上图main.cpp正在被编辑。 ?打开文件列表:显示当前在代码编辑器中打开的所有文件列表。上图中打开的文件列表为:main.cpp, person.cpp, person.hpp ?代码段(CodeSnippets):管理常用的代码段、常用文件链接(links to files)与URL。可以通过菜单View->CodeSnippets 来显示该面板。 ?日志和其他:这个窗口用于输出日志信息,显示查询结果等等。 ?状态栏提供了以下这些信息: ?编辑器中打开文件的绝对路径; ?文件的编码类型;

?光标所在的行与列; ?当前的键盘模式(insert 或者overwrite); ?当前的文件状态。被修改过的(但尚未保存)文件将被标记为“modified”,否则这里为空; ?文件操作的权限。如果文件是只读的,这里将会显示“Read only”,在Open files list中,该文件会使用一个加琐的图标来显示; ?个性化配置名称; CodeBlocks提示了非常灵活和强大的项目管理功能。下文将介绍项目管理的一些常用功能。 1.1 项目视图(Project View) 在CodeBlocks中,Project的源文件(如C/C++的源文件及其对应的头文件)和编译属性设置信息都保存在.cbp文件里。可以通过菜单[File–>Project]启动工程创建向导来创建新的Project,然后通过管理窗口的上下文菜单[Add files](译者注:上下文菜单,指当前窗口中选中目标项目,然后右键显示的菜单)向Project 中添加文件。CodeBlocks会自动根据文件的后缀将它们放入不同的类别文件夹中(译者注:这个文件夹是虚拟的,实际并不存在)。下面是默认的分类: ?Sources:包含源文件,后缀为*.c、*.cpp; ?ASM Sources:包括汇编源文件,后缀一般为*.s、*.S、*.ss、*.asm; ?Headers:包括头文件,后缀一般为*.h、*.hpp;

CodeBlocks用法总汇

说明: 1)以下需要设置的地方均在Settings->Editor...弹出的对话框中。 2)不少命令都可针对当前行或选中的代码块,下文简称当前行或选中块。 ==日常编辑== ?按住Ctrl滚滚轮,代码的字体会随你心意变大变小,对保护视力特别有好处。 ?在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。 ? Ctrl+D可复制当前行或选中块。 ? Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。 ? Tab缩进当前行或选中块,Shift+Tab减少缩进。 ?可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位置。 ?按下Atl,再拖动鼠标,可以实现部分选择(即只选中一个区域内的字符,而不会包含它们所在行的其他字符)。 ?需要更大编辑空间时,F2和Shift+F2分别可以显隐下方Logs & others栏和左方的Management栏。 ==自动完成与缩写== 1)优化代码自动完成功能:在Code-completion and symbol browser中,?将Automatically launch when typed # letter中的4改成2,这样打两个字母就会有提示了。 ?将Keyword sets to additionally include中1到9都勾上(可在Syntax highlighting 的keywords...中设置,其中1是C++关键字,3是Doxygen关键字;我曾将wxWidgets的类名都加入7并设置相应的字体(粗黑体),看代码时特别爽)?将Delay for auto-kick-in when typing [.::->]拉到 200ms,这样快点出来提示?选中Case-sensitive match,防止一些无关的东西干扰,如果你想它帮你纠正大小写,那就去掉勾 ?在Keyboard short-cuts中将Edit->Code complete的快捷键由Ctrl+Space改为 Alt+/,因为前者与中文输入法切换冲突,该快捷键为已经输入的(不是正在输入的)词提供自动完成。 2)看Abbreviation一栏,里面定义了许多缩写(还可以自定义),只要输入这些缩写,并

codeblocks+编程使用手册

CODEBLOCKS快速上手教程 你是不是在想某一天IAR不再让XX的时候我该怎么办呢? KEIL也不行! (本人已不用KEIL很久了,现在用SDCC) 你不是认为开源.LINUX都是牛人玩的?是不是也想成为牛人!而不是用开源的东西仅仅是因为他不要钱? 是不是想哪一天也能为开源奉献点力量? 而这一切的开头都得你起码得会用这些软件吧! 一次和朋友聊天的时候朋友给我推荐了CODEBLOCKS! 于是下载下来!天啦,英文! 不会,丢一边,这一放就是一年 不过当时记得里面有个AVR的! 一年后,也就是前几天,买了块AVR学习板的PCB,是初版,上面BUG好多!还好本人焊接还可以,不成问题! 然后开始对开发软件选型! 一打听太多了 BASIC(不喜欢没理由! XX掉) IAR(用不起!虽然目前不是专门搞这个的,随便用用没问题,但如果这么想那么以后永远都只是随便搞搞) Codevision(听说还可以!不过没用过,) GCC FOR AVR(也就是WINAVR GCC可是大名鼎鼎呀,以后也想玩玩LINUX,那就是他了) 于是安装了AVR STUDIO 并安装了WINAVR 发现写代码的时候没提示,不爽! 于是代码还是用我一直喜欢的C_FREE来写 但是再换回到AVR STUDIO里编译的时候要等一秒AVR STUDIO才会提示文件已被更新 看来这样子不行,太没效率了! 这时候想起了一年前见过的CODEBLOCKS! 试试先 于是在电脑找了半天没找着,只要搜索了一下才发现,忽然发现这已是一年前的版本 于是在其发布网站下载了一个新版! 好了,我们先下载并安装好这次需要的!下载地址: CodeBlocks:https://www.doczj.com/doc/05534233.html,/ WINAVR:https://www.doczj.com/doc/05534233.html,/ 安装好! 首先要新建一个工程!

codeblocks安装和使用(精编文档).doc

【最新整理,下载后即可编辑】 以下是我个人使用CodeBlocks的小结,希望对大伙有所帮助。 这是C::B的一个安装和首次使用的一些配制过程: 先看效果图(好看了很多?倒不是,只不过因为我是在win7下……).

一、下载安装包: 如果您有安装以前版本,并不需要卸载。 Windows安装下载页面:https://www.doczj.com/doc/05534233.html,/downloads/26 请点击图中所示的链接: 点击进入下载页面 这个链接带有新版的MinGW gcc编译环境,但并不是(mingw)官方版本,而是TDM gcc 4.4.1 版本。如果您想另行安排,比如您只想用VC的编译器,可以下载上图中另一个链接。

二、 安装过程: (1) 选择定制安装:Full (2) 选择全部安装: 不然,可能 类似 CppCheck 的插件,就会找不到... (3) 修改安装路径: 这不是Code::Blocks 的错,而是 mingw gcc 的链接器 ln.exe 有个BUG ,不能链接位于带空格或汉字路径下的文件。 接下来的步骤和其它软件的安装就差不多了。 三、 为编译器配制编译环境: (1)、运行Code::Blocks ,第一次运行会弹出选择编译器,请选中gcc 编译器(一般情况下是第一项)。 定制安装 全部选中

(2)、在进入主菜单后,选择Settings->compiler and debugger… 1)、在弹出的对话框中最顶区域(第一项)选择GUN gcc compiler(通常是默认的) 2)、在第二项中找到Tookchain executables选项(如图所示): 01、编译器路径是编译器安装时的安装路径。 02、选择相应的编译器: 输入编译器所在路径 选择相应的编译器 03、在同一界面下,左边切换到最后一项“Debugger setting” 在第一项输入框中输入handle SIGTRA pnoprint

Codeblocks使用教程

CodeBlocks使用教程 Make by ECJTU_ACM,2012-12-17 一、简介 (1) 二、下载 (2) 三、安装 (4) 四、第一次启动 (7) 五、新建CPP文件 (9) 六、代码风格 (12) 一、简介 https://www.doczj.com/doc/05534233.html,/ ACM的现场比赛环境是Linux Ubuntu(全英文环境),可以使用的集成开发环境(IDE)是CodeBlocks。 强烈不推荐用VC6.0,除非你是要用MFC之类的,不过VS2012必须比VC强吧,我对微软的东西不大熟,VS对ACM而言也不是很标准。 Dev C++是初学者用的,用过一段时间后要换成CodeBlocks,对自己养成良好的编程习惯有很好的帮助,不管以后是搞ACM还是其他,计算机相关专业的学生在编写代码方面应该学习渐渐靠近标准才是。 IDE用英文原版的好,逐渐熟悉英文也是必要的,不管以后是否搞ACM。 以下是百度百科的介绍: Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受https://www.doczj.com/doc/05534233.html,的庞大和高昂的价格。

二、下载 可以下载二进制码包(binary release),也即我们在Windows下的.exe文件安装包。点击: 出现新的页面: 大部分的同学应该是使用Windows系统,所以点第一个。 页面跳到下面的位置:

相关主题
文本预览
相关文档 最新文档