社区
Windows SDK/API
帖子详情
怎样在C++Builder下使用纯粹的win32API编程
WJM
2000-07-12 08:42:00
我刚买了本WindowsAPI编程书,想上机调试书上的例程,请问在C++Builder下怎样跳过vcl而直接用c在API的基础上编程?
...全文
246
8
打赏
收藏
怎样在C++Builder下使用纯粹的win32API编程
我刚买了本WindowsAPI编程书,想上机调试书上的例程,请问在C++Builder下怎样跳过vcl而直接用c在API的基础上编程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hnxrm
2001-01-01
打赏
举报
回复
......
BCB
2001-01-01
打赏
举报
回复
在20世纪的最后一个晚上,O发觉了编制纯API的C程序
步骤,VCL构架使用简单但代码庞大,一个仅有一个Form1的VCL
程序编译后将产生300K的肥胖目标,如果不用VCL库,仅利用MS
API编制的C++程序所产生的目标将只有8K, 嘿嘿! 瘦得已皮包
骨头,不过,比只有一层皮的 CIH 还胖7倍;
产生无VCL的纯API C++BUILDER 程序步骤:
1.进入C++BUILDER 5.0,关闭缺省工程: File -> Close All;
2.选 File -> New ... -> Console Wizard 进入控制台向导;
3.弹出参数框中,Source Type 选C++,
Use VCL, Multi Threaded, Console Application 三行都
不要选中;
选中Specify project source,且填上工程名: TestAPI
4.点OK后,选中Create a new Unit,将Unit1.cpp内容全清除,
将下列框架粘贴上;
5.存盘,工程名存成TestApi.bpr,运行,产生8kb的目标
TestApi.exe
// Unit1.cpp内容,是个基本架子,跟早期的 VC++1.0 的程序完全
一样
#define STRICT
#include <windows.h>
#pragma hdrstop
LRESULT FAR PASCAL __export WndProc(HWND,UINT,WPARAM,LPARAM);
int PASCAL WinMain(HINSTANCE hInstance, //实例句柄
HINSTANCE hPrevInstance, //前一实例句柄,仅用于16位win
LPSTR lpszCmd, //命令行串
int nCmdShow ) //显示窗口标志
{
static char AppName[]="HelloWorld";
HWND hwnd;
MSG msg;
WNDCLASS wndclass; // 窗口类对象
if (!hPrevInstance) // 若前一实例不存在
{
wndclass.style = CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc =(WNDPROC)WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = 0;
wndclass.lpszClassName = AppName;
RegisterClass(&wndclass); // 为CreateWindow() 注册一个窗口类
}
hwnd=CreateWindow(AppName,"Hello World",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,SW_NORMAL); // 显示窗口
while (GetMessage(&msg,NULL,0,0)) //取消息,有返true
{
TranslateMessage(&msg); // 虚拟键消息转成字符消息
DispatchMessage(&msg); // 转发消息
}
return(msg.wParam);
}
LRESULT FAR PASCAL __export
WndProc(HWND hwnd, // 窗口句柄
UINT message, // 消息句柄
WPARAM wParam , // 消息首参
LPARAM lParam) // 消息次参
{ // 处理消息的回调函数
switch (message)
{
case WM_PAINT:
{
char text[]="Hello World!";
PAINTSTRUCT ps;
BeginPaint(hwnd,&ps);
TextOut(ps.hdc,20,20,text,13);
EndPaint(hwnd,&ps);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return(0);
}
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return(0);
}
APIer
2000-08-02
打赏
举报
回复
TWOY2000讲的很有道理,我在BCB5上试过,选控制台程序,不要VCL支持,不选SONSOLE悬想,然后新建CPP和H文件,直接就可以想VC一样写API程序,一个标准的窗口40K,比VC的要小一点,但比LCC的又大一点,BORLAND的编译器真的不错哦,欢迎到我的主页去看看,里面有一些BCB和BC的东东http://calfsoft.51.net
twoy2000
2000-07-12
打赏
举报
回复
选择New/Console Wizard/选择用C,然后添加必要的头文件,
如Windows.h等.
halfdream
2000-07-12
打赏
举报
回复
BCB 编译能力相当强,
就象twoy2000说的那样比较方便。
或者你干脆进入DOS方式,
命令行方式编译
bcc32 -tWxxx xxx.cpp
或
bcc32 xxx.cpp
LaoZheng
2000-07-12
打赏
举报
回复
那你用VC,bc5.0
hoyle
2000-07-12
打赏
举报
回复
直接用就可以了,必要时包含一些Windows头文件
wu_xin
2000-07-12
打赏
举报
回复
在VCL的包含内大部分的API真接使用好了!比如MessageBox(...)实际就是的调用!
DevExpress的安装工具
Visual Component Library的缩写(可视组件库)VCL是Visual Component Library的缩写,即可视组件库,它是Delphi,
C++Builder
等
编程
语言的基本类库。 它拥有封装
纯粹
,可扩展性强,操作方便等特点。如果是一个非常...
asp.net知识库
怎么在ASP.NET 2.0中
使用
Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里
使用
强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+
使用
示例(ASP.NET 2.0)...
C++Builder
的基本功能
C++Builder
的基本功能 我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执行文件。 无论是在写代码的...
C++builder
,visual C++,C#,C区别
C++ Builder C++ Builder是由Borland公司 继Delphi之后又推出的一款高性能可视化集成开发工具。C++ Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置...
总体上说,是c++ builder胜于VC++,DELPHI是最好
总体上说,是c++ builder胜于VC++,DELPHI是最好 2011年09月30日 偶然来找一个文件,却发现这里关于vc++和delphi的讨论很是激烈。看了大家写的一些文章,觉得有些看法正确,有些就很偏颇甚至错误(也许无知?很...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章