社区
Windows SDK/API
帖子详情
C++ Builder编译的程序为什么那么大?/如何用API创建窗体?
Sachow
2000-06-07 04:06:00
为会么C++ Builder编译的程序总是很臃肿,比Delphi编译的要大一截?怎么能让它小
一点?
我用C++ Builder5编译了Charles Petzold的Hello.c源程序,体积竟然有50K! 用
Delphi编译的只有16K。
...全文
314
6
打赏
收藏
C++ Builder编译的程序为什么那么大?/如何用API创建窗体?
为会么C++ Builder编译的程序总是很臃肿,比Delphi编译的要大一截?怎么能让它小 一点? 我用C++ Builder5编译了Charles Petzold的Hello.c源程序,体积竟然有50K! 用 Delphi编译的只有16K。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
APIer
2000-07-18
打赏
举报
回复
SaChow兄:
其实BCB也能写出很小的程序的。选File->New->Console Wizard,出现对话框时,不要选Use VCL和Console Application.生成一个工程,然后在WinMain函数所在的文件中加入以下代码
#include <windows.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//初始化窗口类
//WinMain函数说明
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInst,
LPSTR lpszCmdLine,
int nCmdShow)
{
HWND hwnd ;
MSG Msg ;
WNDCLASSEX wndclass ;
char lpszClassName[] = "窗口"; //窗口类名
char lpszTitle[]= "窗口示例"; //窗口标题名
//窗口类的定义
wndclass.cbSize=sizeof(WNDCLASSEX);
wndclass.style = 0; //窗口类型为缺省类型
wndclass.lpfnWndProc = WndProc ; //窗口处理函数为WndProc
wndclass.cbClsExtra = 0 ; //窗口类无扩展
wndclass.cbWndExtra = 0 ; //窗口实例无扩展
wndclass.hInstance = hInstance ; //当前实例句柄
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION) ;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //窗口的最小化图标为缺省图标
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW) ;
//窗口采用箭头光标
wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH) ;
//窗口背景为白色
wndclass.lpszMenuName = NULL ; //窗口中无菜单
wndclass.lpszClassName = lpszClassName ;
//窗口类名为"窗口示例"
//窗口类注册
if( !RegisterClassEx( &wndclass)) //如果注册失败则发出警告声音
{
MessageBeep(0) ;
return FALSE ;
}
//创建窗口
hwnd=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,
lpszClassName,"英雄战机",
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
0,0,
400,//GetSystemMetrics( SM_CXSCREEN ),
500,//GetSystemMetrics( SM_CYSCREEN ),
NULL,
(HMENU)NULL,
hInstance,
NULL);
//显示窗口
ShowWindow( hwnd, nCmdShow) ;
//绘制用户区
UpdateWindow(hwnd);
//消息循环
while( GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage( &Msg) ;
DispatchMessage( &Msg) ;
}
return Msg.wParam; //消息循环结束即程序终止时将信息返回系统
}
//窗口函数
LRESULT CALLBACK WndProc( HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
switch(message){
case WM_DESTROY:
PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息
default: //缺省时采用系统消息缺省处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
//------------------------------------------------------------------------这样生成的程序只有7K,把RTL和PACKAGES取消也只有50K,够小了吧?他是一个纯API的窗口程序。怎么样满意了吗?
欢迎来我的主页讨论C/C++程序相关的问题:
http://calfsoft.51.net
zf
2000-06-08
打赏
举报
回复
Because C++ Builder use use vcl and C++ at same time!
So Delphi application is smaller than C++ Builder!
Firing_Sky
2000-06-08
打赏
举报
回复
用API创建窗口,头文件不要包含VCL.h和forms.h
使用RUNTIME运行库
Sachow
2000-06-08
打赏
举报
回复
呵呵,我是喜欢程序体积小一点,以瘦为美,每每我看见那些只有百多K却功能不少的
程序时就赞叹不已,哎,可是……
还想问一个问题,C++ Builder能不能只编译某个C/C++源文件而不是一整个项目?如果
能的话,该怎么做?
还有,谁能给我一小段代码,不要VCL的支持,建立一个Window,或弹出一个对话框,
或播放一段声音,只要编译后体积在20K以内就行。我想对立使用BCB的信心,如果证实
它不能做,我只好……我只好……
alexela
2000-06-08
打赏
举报
回复
C++Builder的代码大是有他的原因的(因为有很多不用的DLL被连进去了)。但他并不影响速度和执行效率。BCB的编译器是优化编译器,C++编程的多态性决定了这一特点。虚拟函数的应用,为C++编程提供极大的方便(维护、升级、数据封装、继承。。。。。。)你的HELLO程序还算小的。如果你取消了DYNAMIC RTL和RUN TIME运行时库,程序至少达到900多K。一般都为1M以上。
随着你编程经验的增加,你会喜欢上他这一特点的。
halfdream
2000-06-07
打赏
举报
回复
呵呵, 再加代码上去,体积变化就不大了。
只用API只是创建的是WINDOWS, 而不能创建窗体FORM。
c++
builder
让
程序
最大化最小化的代码_勿忘初心,安得始终-CSDN博客1
1、IsZoomed函数:确定窗口是否是最大化的窗口 1、ComboBox1->Text能改变combobox 1、可以这样设置背景颜色 1、隐藏
程序
1、我想
C++
Builder
5 编程实例与技巧
本书具有下面的一些特色: (1) 例程精练、实用、完整,易于查找本书的例程丰富,短小精练。在每章的前面部分,以一定的篇幅对基本理论、知识要点等进行论述;然后以经典的例程加以说明;最后对例程进行分析和总结。书中的例程完整,并全部按照章号进行了编号。在随书的光盘中有这些例程的源代码和
编译
、链接后的可执行文件。读者可以使用随书光盘中的“复制”
程序
(可执行文件为D5Samples.exe)将例程复制到硬盘的指定位置,也可以通过资源管理器进行复制。另外,对于每个例程都指定了若乾个关键字,可以根据关键字查找相关知识点的例程。 (2) 编程技巧丰富作者将自己在开发
程序
过程中总结、收集的经验和教训、一些读者在编程过程中遇到的问题等融合在本书中,并且将这些编程技巧尽量独立,便于读者快速查找。 (3) 内容广泛,兼容性强本书几乎涉及了
C++
Builder
编程的所有领域,不仅适用于
C++
Builder
5,而且也适用于
C++
Builder
4和
C++
Builder
3等以前的版本。 (4) 体现了面向对象的技术和软件工程化的思想本书从总体上体现了面向对象
程序
设计的方法,同时将软件工程化的思想融于其中。 内容编排本书主要分为下面的六个部分: 第一部分
C++
Builder
编程基础
C++
Builder
编程基础包括:
C++
Builder
集成开发环境的介绍和
C++
语言的关键技术。 第二部分
C++
Builder
编程通用技术
C++
Builder
编程核心技能包括:
窗体
和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分
C++
Builder
高级编程技术
C++
Builder
高级编程技术包括:数据共享、操作注册表、帮助系统的制作、安装与卸载、多线程应用
程序
、动态链接库和图形与多媒体等技术。 第四部分 数据库编程数据库编程部分包括:关系数据库、数据库组件、InterBase服务器、OLE DB/ADO和Web与数据库等。 第五部分 组件对象模型(COM) 组件对象模型(COM)包括:COM和OLE自动化等内容。 第六部分 分布式
程序
设计分布式
程序
设计包括:DCOM、MIDAS、ActiveForm、CORBA与分布式应用
程序
,以及其他的一些编程方法与技巧。 阅读建议: 对于
C++
Builder
的初学者,可以按顺序进行阅读。如果读者对
C++
语言有一定的了解,也可以直接从第二部分开始,待使用
C++
Builder
编程有了一定的经验后,再回过头来看看第一部分的内容。对于
C++
Builder
的中级用户,可以按章节顺序阅读、上机,也可以直接挑选感兴趣的章节学习。值得注意的是,第一部分的内容对使用
C++
语言进行软件开发非常有用,一定要掌握好。对于
C++
Builder
的高级用户,可以直接挑选感兴趣的章节阅读。
makefile基础到实战
编译
大型C/
C++
项目(linux)
《makefile基础到实战
编译
大型C/
C++
项目(linux)》讲师:夏曹俊
C++
Builder
开发
一个很基础的PPT格式的,适合入门 第1章__
C++
Builder
开发环境.ppt 第2章__
窗体
设计与常用控件.ppt 第3章__应用
程序
界面设计.ppt 第4章__图形与多媒体应用.ppt 第5章__数据库应用
程序
开发.ppt 第6章__
C++
标准模块库(STL)及其
程序
设计.ppt 第7章__深入
C++
Builder
面向对象.ppt 第8章__异常处理与
程序
调试.ppt 第9章__Win32编程.ppt 第10章__自定义组件与ActiveX组件.ppt
C++
Builder
_5 编程实例与技巧(源代码)
本书特色 本书具有下面的一些特色: (1) 例程精练、实用、完整,易于查找本书的例程丰富,短小精练。在每章的前面部分,以一定的篇幅对基本理论、知识要点等进行论述;然后以经典的例程加以说明;最后对例程进行分析和总结。书中的例程完整,并全部按照章号进行了编号。在随书的光盘中有这些例程的源代码和
编译
、链接后的可执行文件。读者可以使用随书光盘中的“复制”
程序
(可执行文件为D5Samples.exe)将例程复制到硬盘的指定位置,也可以通过资源管理器进行复制。另外,对于每个例程都指定了若乾个关键字,可以根据关键字查找相关知识点的例程。 (2) 编程技巧丰富作者将自己在开发
程序
过程中总结、收集的经验和教训、一些读者在编程过程中遇到的问题等融合在本书中,并且将这些编程技巧尽量独立,便于读者快速查找。 (3) 内容广泛,兼容性强本书几乎涉及了
C++
Builder
编程的所有领域,不仅适用于
C++
Builder
5,而且也适用于
C++
Builder
4和
C++
Builder
3等以前的版本。 (4) 体现了面向对象的技术和软件工程化的思想本书从总体上体现了面向对象
程序
设计的方法,同时将软件工程化的思想融于其中。 内容编排本书主要分为下面的六个部分: 第一部分
C++
Builder
编程基础
C++
Builder
编程基础包括:
C++
Builder
集成开发环境的介绍和
C++
语言的关键技术。 第二部分
C++
Builder
编程通用技术
C++
Builder
编程核心技能包括:
窗体
和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分
C++
Builder
高级编程技术
C++
Builder
高级编程技术包括:数据共享、操作注册表、帮助系统的制作、安装与卸载、多线程应用
程序
、动态链接库和图形与多媒体等技术。 第四部分 数据库编程数据库编程部分包括:关系数据库、数据库组件、InterBase服务器、OLE DB/ADO和Web与数据库等。 第五部分 组件对象模型(COM) 组件对象模型(COM)包括:COM和OLE自动化等内容。 第六部分 分布式
程序
设计分布式
程序
设计包括:DCOM、MIDAS、ActiveForm、CORBA与分布式应用
程序
,以及其他的一些编程方法与技巧。 阅读建议: 对于
C++
Builder
的初学者,可以按顺序进行阅读。如果读者对
C++
语言有一定的了解,也可以直接从第二部分开始,待使用
C++
Builder
编程有了一定的经验后,再回过头来看看第一部分的内容。对于
C++
Builder
的中级用户,可以按章节顺序阅读、上机,也可以直接挑选感兴趣的章节学习。值得注意的是,第一部分的内容对使用
C++
语言进行软件开发非常有用,一定要掌握好。对于
C++
Builder
的高级用户,可以直接挑选感兴趣的章节阅读。
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章