社区
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。
...全文
309
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 编程实例与技巧
第二部分
C++
Builder
编程通用技术
C++
Builder
编程核心技能包括:
窗体
和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分
C++
Builder
高级编程技术
C++
Builder
高级编程技术包括:...
C++
Builder
开发
第1章__
C++
Builder
开发环境.ppt 第2章__
窗体
设计与常用控件.ppt 第3章__应用
程序
界面设计.ppt 第4章__图形与多媒体应用.ppt 第5章__数据库应用
程序
开发.ppt 第6章__
C++
标准模块库(STL)及其
程序
设计.ppt 第7章__深入...
C++
Builder
_5 编程实例与技巧(源代码)
第二部分
C++
Builder
编程通用技术
C++
Builder
编程核心技能包括:
窗体
和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分
C++
Builder
高级编程技术
C++
Builder
高级编程技术包括:...
C++
Builder
6.0设计师之路 pdf版
13.1 为什么要使用分布式多层结构 13.2 理解midas 13.3
创建
分布式应用
程序
13.4
创建
应用
程序
服务器 13.5
创建
客户端应用
程序
13.6 在分布式应用
程序
中管理事务 13.7 支持远程数据模块的状态信息 13.8 用提供者组件...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章