当前位置: 首页 > 编程日记 > 正文

使用ultraedit和cl编译器打造简易c/c++开发环境

在visual c++下,每编写一个简单的小程序,就得生成一大串中间文件,另人十分的不爽。下面提供一个新的编写c/c++程序的方法:
  (1),下载utraledit-32编辑器,推荐v11.
  (2),在utraledit-32中,分别点击菜单:高级-工具配置,出现一个dialog,用来设置用户自定义的菜单项。我们的想法是,设置一个编译菜单和运行菜单项,分别用来编译在utraledit-32编写的c/c++源文件。这样,在utraledit-32中编写好程序后,点击这两个菜单,就可以编译程序,和运行程序。运行的结果在utraledit-32的输出框中显示。具体的设置如下。
  编译:
  1,在命令行中填入:cl %n%e    我们知道,dos下的cl命令用来编译源文件。后面的两个参数%n%e表示要编译的源文件的文件名。(注意每个字母必须是小写的,以下同)
  2,在工作目录中填入:%p
  3,在菜单项目名中填写 编译,这个名字就是我们要设置的编译菜单项的名字。
  4,对于下面的几个复选框,选中输出到列表框和捕获输出。
  5,点击 插入 按钮,建立编译菜单项
  运行:
  1,在命令行中填入:%n
  2,在工作目录中填入:%p
  3,在菜单项目名中填写 运行,这个名字就是我们要设置的运行菜单项的名字。
  4,对于下面的几个复选框,选中输出到列表框和捕获输出。
  5,点击 插入 按钮,建立运行菜单项
  点击确定退出
  这样,在 高级(A) 菜单下面可以看到出现了两个新的菜单:编译和运行
  这样,当写好源程序后,点击工具编译和运行菜单,就可以编译和运行程序。最终生成。obj文件和。exe文件。这样的做法,比起使用vc要生成一大堆文件,而且要为每一个程序建立一个文件夹,是不是更加的方便呢?
  (3),为编译和运行菜单设置快捷健:
  utraledit-32是一个强大的编辑器,可以使用户自己定义各个菜单的快捷健。具体的做法如下:
  点击菜单:高级-配置,再选中键映射这一栏,可以看到所有的菜单项对应的快捷健,当然也包括我们刚才生成的两个菜单,如果觉得这两个菜单的快捷键用得不爽的话,可以自己设定。更详细的做法就不说啦。
  (4)原理:说了这么多,其实上面用到的是cl命令和utraledit-32提供的一些接口。我们知道,在dos下,可以用cl命令来编译c/c++程序(当然估计没人有会真的这么做)。而utraledit-32提供了一个接口,可以建立菜单项,通过点击菜单项来执行dos下的命令。需要考虑的是,dos下的cl命令要求提供源文件的文件名作为参数,这个参数,在utraledit-32用%n%e来代替。当然,也可以为%N%E,但推荐使用小写,大小写的区别请看utraledit-32的帮助文档。
  8-7:补充:如果要编译链接生成DLL文件,把编译命令改为:    cl %n%e   /LD ,需要说明的是,生成exe文件的命令和生成dll文件的命令不能相互换用,所以,如果在utraledit下经常性地开发dll程序的话,还得再创建个编译dll文件得菜单为好,这样就避免了编译两种文件的时候改来改去。

附:如何在上述环境下编写win32 GUI程序:
上面的编程环境与用户是通过DOS控制台进行,但有时候觉得console too simple& naive啦,所以,想用些按钮,编辑框换换,但用VC又有上文所述的种种不爽。幸好,在程序前面加上如下代码,就可以用自己打造的简易环境来开发GUI了。
#pragma comment(linker,"/subsystem:windows")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"gdi32.lib")


说明:第一行指链接程序时按照/subsystem:windows格式进行链接。我们知道,在VC中,对于应用程序有两种链接方式,一种是/subsystem:console,当用这种方式链接时,程序与用户交互将通过console进行。另一种就是上面的/subsystem:windows,这种情况下,程序与用户交互通过程序中的GUI进行。
仅仅指定上述链接格式还不够,因为GUI函数,如MessageBox,TextOut等,是放在user32.lib和gdi32.lib中的,但是直接用cl命令编译,并不会链接到这两个lib。所以,必须在程序前面加上第二行和第三行,才能进行GUI的开发。

另附:

#pragma comment( comment-type [,"commentstring"] )

comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一

commentstring是一个提供为comment-type提供附加信息的字符串。

注释类型:

1、compiler:

放置编译器的版本或者名字到一个对象文件,该选项是被linker忽略的。

2、exestr:

在以后的版本将被取消。

3、lib:

放置一个库搜索记录到对象文件中,这个类型应该是和commentstring(指定你要Linker搜索的lib的名称和路径)这个库的名字放在Object文件的默认库搜索记录的后面,linker搜索这个这个库就像你在命令行输入这个命令一样。你可以在一个源文件中设置多个库记录,它们在object文件中的顺序和在源文件中的顺序一样。如果默认库和附加库的次序是需要区别的,使用Z编译开关是防止默认库放到object模块。

4、linker:

指定一个连接选项,这样就不用在命令行输入或者在开发环境中设置了。

另附:
  利用vc 6.0目录下的cl.exe直接编译程序的方法[整理]
  这是解决上面设置中,如果安装VC的时候没有设置环境变量的时候出现“cl不是内部或外部命令~~~”的方法
  copy from : http://dev.csdn.net/author/kgdiwss/03f945afa2844c3c84355a3bf2a72a65.html
  1.在“我的电脑——属性——高级——环境变量”中, 添加如下变量:
  INCLUDE
  D:\Program Files\Microsoft Visual Studio\VC98\Include
  LIB
  D:\Program Files\Microsoft Visual Studio\VC98\Lib
  PATH
  X:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;X:\Program Files\Microsoft Visual Studio\VC98\Bin
  X表示安装盘符,注意这里是两个路径,因为cl.exe要用到MSDev98\Bin目录下的MSPDB60.DLL.
  如果已经存在这些变量,则把以上值分别加在对应的变量值的后面,注意在添加前用分号隔开。
  2.重启电脑
  3.打开命令提示符,输入:
  cl hello.c
  回车后就会在目录下生成hello.exe和hello.obj.

附:

CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF)

对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。

注意,所有编译器选项都区分大小写。

用法如下:

CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]

option : 一个或多个 CL 选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个

正斜杠 (/) 或一个短划线 (-) 指定的。如果某个选项带有参数,则该选项的说明指

定在选项和参数之间是否允许有空格。选项名(/HELP 选项除外)区分大小写。

转载于:https://www.cnblogs.com/weiqubo/archive/2010/08/26/1929967.html

相关文章:

股市币市:数据分析与交易所最新公告(20190302)

BTC比特币 1. 比特币分位数数据 2. 比特币交易图 3. 比特币分位数图 4. 比特币筹码分布图 数据来源: https://coinmarketcap.com/currencies/bitcoin/ 数字货币交易所公告 BigOne 2019/03/01 BigONE 用户体验月:有奖寻建议 ,重金找 BUG …

分享五款java学习辅助工具,总有你用的上的~

想要学好java技术,除了自身的努力,辅助工具也不缺少,辅助工具可以帮助大家在今后的工作中可以提高工作效率,下面小编就来分享五款java学习辅助工具,总有你用的上的~ 五款java学习辅助工具: 1、Eclipse Ecli…

如何利用 C# 爬取「猫眼电影专业版:票房」数据!

在现代生活中,看电影已经成为大家的一种休闲方式。 前几天,我们介绍了 如何利用 C# 爬取「猫眼电影:热映口碑榜」及对应影片信息!,通过这份“热映口碑”榜单,我们可以看到大家对当前热播电影的评价&#x…

MOSS的CSS样式说明,一个老外总结的

MOSS的CSS样式说明,一个老外总结的 http://www.heathersolomon.com/content/sp07cssreference.htm 转载于:https://www.cnblogs.com/greeny/archive/2010/09/03/1817027.html

什么是整型?Python整型详细介绍

整数类型(int)简称整型,它用于表示整数,例如,100、2016等。整型字面值的表示方式有四种,分别是十进制、二进制(以“0B”或“0b”开头)、八进制(以数字“0”开头)和十六进制(以“0x”或“0X”开头)。 Python的整型可以表示的范围是…

hibernate.hbm2ddl.auto的value

Hibernate 配置参数hibernate.hbm2ddl.auto Hibernate中的配置文件&#xff1a; <properties> <property name"hibernate.hbm2ddl.auto" value"create" /> </properties> 参数说明&#xff1a; validate 加载hibernate时…

linux的管道

1 管道的本质是进程间通信的一种手段 这个命名是非常形象的&#xff0c;数据从管道的一端流向管道的另外一端&#xff0c;然后另外一个进程等在那里&#xff0c;只要有数据了就进行处理。 2 管道连接的多个命令是同时启动的 也就是说&#xff0c;管道连接的多个命令的进程之间是…

股市币市:数据分析与交易所最新公告(20190303)

BTC比特币 1. 比特币分位数数据 2. 比特币交易图 3. 比特币分位数图 4. 比特币筹码分布图 数据来源&#xff1a; https://coinmarketcap.com/currencies/bitcoin/ 产品进程 赚钱是刚需&#xff0c;如何正确的交易股票&#xff1f;「股票数据分析软件」的开发&#xff08;上&…

零基础怎么学习web前端开发

零基础怎么学习web前端开发?web前端在移动互联网行业的运用是非常广泛的&#xff0c;而且web前端开发技术所涵盖的知识有很多&#xff0c;具体要怎么学习&#xff0c;来看看小编下面的详细介绍吧。 零基础怎么学习web前端开发?对零基础学员来说&#xff0c; web前端要学习的知…

【DocFX文档翻译】DocFX 入门 (Getting Started with DocFX)

DocFX 入门 1. DocFX 是什么&#xff1f; DocFX 是一个基于.NET的API文档生成器&#xff0c;当前支持 C# 和 VB。 它可以通过你的代码中的三斜杠注释生成 API 参考文档。同样也支持你使用 Markdown 文件创建一些其他的主题文档&#xff08;例如&#xff1a;教程以及使用手册&am…

在Ubuntu上安装Snort入侵检测系统。

转载于:https://www.cnblogs.com/onlyzq/archive/2010/09/10/1823079.html

一份来自山东院校的考研调剂系统已开放名单!

距离 19 考研初试成绩的公布已经有一段时间了&#xff0c;成绩不错的同学就安心准备复试吧&#xff0c;全力备考&#xff0c;一定要拿到属于你的录取通知书&#xff01;成绩不满意&#xff0c;擦线或者排名靠后的同学&#xff0c;复试、调剂两手准备&#xff0c;注定咱们要花更…

适合初学者学java技术的书籍推荐!

想要学会java技术&#xff0c;光靠听课是不够的&#xff0c;看书也是非常重要的一步&#xff0c;以下小编为大家推荐的是适合初学者学java技术的书籍&#xff0c;希望能够给初学者们带来帮助。 适合初学者学java技术的书籍推荐! 1. Java编程思想(第4版) 本书赢得了全球程序员的…

ref和out的区别

ref和out的区别在C# 中&#xff0c;既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值&#xff0c;并保持该更改。若要通过引用传递参数&#xff0c; 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效&#xff0c;其作用也很像C中…

如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!

前段时间我们介绍了如何利用 C# 语言来爬取“京东 - 计算机与互联网图书销量榜” 网页的方法&#xff0c;通过该方法&#xff0c;我们能够获得“京东”的图书销售排行榜数据。 可是&#xff0c;读书相当于给我们的大脑喂料&#xff0c;只有输入的是精华&#xff0c;才会有更好…

【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题

foreach语句使用总结增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合. part1定义了一个局部变量,这个局部变量的类型与part2中的对象元素的类型是一致的. part3当然还是循环体. foreach语句是java5的新特征之一&#xff0c;在遍历数组、集合方面&…

参加软件测试培训需要学什么技术

软件测试这项技术在几年可谓是风头正盛&#xff0c;很多人都想要跳槽到这个行业&#xff0c;那么就需要学会软件测试技术&#xff0c;那么目前参加软件测试培训需要学什么技术呢?来看看下面的详细介绍吧。 参加软件测试培训需要学什么技术? 每个软件在上线之前都离不开重重测…

程序集和应用程序域

这两个概念是DotNet程序员经常见到的&#xff0c;但好多人搞不清它们。虽然MSDN对它们有相关的说明&#xff0c;但并不是那么容易看懂。在这里灰灰虫根据自己的理解用简单易懂的语言解绍一下它们。程序集(assembly) “程序集是包含编译好的、面向.NET Framework的代码的逻辑…

股市币市:数据分析与交易所最新公告

投资原则&#xff1a; 极端牛市是攒钱的时候&#xff08;分位数达到100&#xff09;&#xff0c;极端熊市是攒票的时候&#xff08;分位数低于40%&#xff09;&#xff0c;股指已经屡创新高&#xff0c;你再不攒钱就不对了&#xff0c;同理&#xff0c;股指屡创新低&#xff0c…

OpenGL学习(hello)

#include <gl/glut.h>void display(void){glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲以及深度缓冲glColor3f(1.0, 1.0, 1.0);glBegin(GL_POLYGON); // 绘画開始话多边形/*glVertex3f(0.25, 0.25, 0.0);glVertex3f(0.75, 0.25, 0.0);glVertex3f(0.75, 0.75, 0.0);glV…

选择python培训机构的关键考核五大因素,让你永不吃亏!

近几年&#xff0c;对于Python技术在人工智能领域的广泛使用&#xff0c;想要学习Python技术的人越来越多&#xff0c;市面上的Python培训机构也多了起来&#xff0c;如何选择适合的Python培训机构成了困扰大家的问题&#xff0c;下面小编就我大家详细的解析一下选择python培训…

Maven 的classifier的作用

直接看一个例子&#xff0c;maven中要引入json包&#xff0c;于是使用了 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.2.2</version> </dependency> 可是&#xff0c;当…

NPOI 导出Excel

找到dll文件引用 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System; using System.IO;namespace NPOI.WriteExcel {class Program{/*NPOI.DLL&#xff1a;NPOI 核心函式庫。NPOI.DDF.DLL&#xff1a;NPOI 繪圖區讀寫函式庫。NPOI.HPSF.DLL&#xff1a;NPOI 文…

如何利用 C# 实现 K 最邻近算法?

众所周知&#xff0c;电影可以按照题材分类&#xff0c;然而题材本身是如何定义的&#xff1f;由谁来判定某部电影属于哪个题材&#xff1f;也就是说同一题材的电影具有哪些公共特征&#xff1f;这些都是在进行电影分类时必须要考虑的问题。没有哪个电影人会说自己制作的电影和…

参加java培训真的能学到有用的吗

java技术在互联网行业的快速发展&#xff0c;优渥的待遇&#xff0c;让很多人都想学习这项技术&#xff0c;目前市面上开设java培训的机构越来越多&#xff0c;很多人都担心参加java培训能学到知识吗?下面我们来看看具体的解析。 参加java培训能学到知识吗?在Java培训机构能不…

android自定义调节器控件 —— RegulatorView

2019独角兽企业重金招聘Python工程师标准>>> RegulatorView效果图&#xff1a; RegulatorView实现步骤&#xff1a; 1.新建java类RegulatorView.java&#xff0c;继承View类 2.定义必要基础属性&#xff0c;及为其附初始值 private final static int BTN_RADIUS20;/…

如何利用 C# 实现 K-D Tree 结构?

我的朋友海伦一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的人选&#xff0c;但她没有从中找到喜欢的人。经过一番总结&#xff0c;她发现曾交往过三种类型的人&#xff1a; 不喜欢的人魅力一般的人极具魅力的人 尽管发现了上述规律&#xff0c;但海…

[恩难到了]陨石的秘密

【描述】 公元19881231年&#xff0c;一颗巨大的陨石坠落在世界的政治文化中心cs。于是&#xff0c;灾难降临了&#xff0c;地球上出现了一系列反常的现象。当人们焦急万分的时候&#xff0c;一支由cs科学家组成的考察队赶到了出事地点。经过一番侦察&#xff0c;科学家们发现陨…

java培训学习阶段步骤讲解

目前的培训机构行业比较热门的IT技术就是java技术&#xff0c;java技术在近几年广受关注&#xff0c;java所涉及的技术知识也比较广泛&#xff0c;下面小编就为大家详细的介绍一下java培训学习多有哪几个阶段? java培训学习多有哪几个阶段&#xff1a; 第一阶段、Java设计和编…

资料分享:送你一本《机器学习实战》电子书!

这两天&#xff0c;各985高校发布了考研初试分数线。从中发现这两年大数据相关专业的分数线暴涨啊。没有400分估计心里都没底啊。可见大数据这个领域有多火爆&#xff01;而机器学习是我们团队的一个主要方向&#xff0c;新加入的同学通常都是从《机器学习实战》这本书开始入门…