[C++] 如何在 C++ Builder 3.0 下编译含有 MFC 的程序?
来源:互联网 发布:465端口发邮件 编辑:程序博客网 时间:2024/06/18 13:01
虽然说 C++ Builder 3.0 是 Borland C++ 5.02 的下一个版本,一样支持 MFC ,但若要在 C++ Builder 3.0 下使用 MFC 并不简单。不是直接写个 MFC native Code 并在 Project Option 中再勾选个 MFC Compatibility 这么简单,若你只这样做,保证你在编译时一定会得到一堆的 Warnning 与 Error。
要让你与 BCB 都能够轻松的编译 MFC ,我们所必需的就是自己动点手脚,并将这个动过手脚的 Project 档给放到 Object Repository;之后,你只需要按下选单上的 New 就可以开始你的 MFC in BCB之路了。
Step 1、
New 一个新的 Project
Step 2、
在 Project Option里的 Directories/Conditionals 这一页的Conditionals/Conditional defines中给加入
_X86_
_WINDOWS
_MSC_VER=1100
_AFX_PORTABLE
_AFX_NOFORCE_LIBS
_MT
_CRT_PORTABLE
_AFX_NO_DEBUG_CRT
这几个编译用的参数。
并记得在 include path 加入 $(BCB)/include/MFC 这一项。
Step 3、
接着在 Advance Compilers 这一页里将 MFC Compatibility 给勾选起来,
Step 4、
紧接着,将档案给存起来,里用文字编辑器来修改这个 Project 的 bpr 檔。
找到 CFLAG1 = ...... 这一行
将这一行给为
CFLAG1 = -Od -Hc -w -k -r- -y -v -vi- -c -w-par -w-inl -w-hid -w-aus -g0 -WM -W
再找到 CFLAG3 = ...... 这一行
将这一行给为
CFLAG3 = -Tkh30000 -VF
最后找到 ALLLIB = .... 这一行
将这一行给为
ALLLIB = $(LIBFILES) $(LIBRARIES) nafxcw.lib import32.lib cw32mt.lib
接着就是存盘啰!
Step 5、
这样一来,就可以直接在BCB3下享用MFC啰!
不可不知道
在此范例中,所编译出来的档案将会是 static link 的版本,并非 dynamic link,要怎么样在 BCB 3 下做 dynamic link MFC library 呢?在此先卖个关子,看看 BCB 里所附上的范例吧!
此外,在 BCB 有很多方式来链接 VCL 与 MFC,大致可分为两类 :
1、以 TApplication 为主体,而程序中混合使用 VCL与 MFC 所提供的其它类,如CDC、CPoint、CFile 等等.....。
2、以 MFC 的 CApp 为主体,在选单中呼叫 VCL 所组合而成的 Form。
而这两类要怎么样在 BCB 里完成呢?聪明的读者,动动您的脑筋想想看吧!
- [C++] 如何在 C++ Builder 3.0 下编译含有 MFC 的程序?
- C++Builder编译MFC程序的设置
- [C++] 如何在 C++ Builder 3.0 下混用两大 Application Framework VCL & MFC?
- 在命令行下编译C++Builder工程
- 在C++Builder下如何设置dspack的图象大小
- 如何在linux下编译并执行C程序
- windows如何在命令行下编译C/C++程序
- 如何在Windows下编译连接C程序
- C++Builder中编译MFC类库
- BCB5(C++Builder 5 )编译的程序运行在没有安装BCB的电脑上
- 在Linux下如何编译并运行C程序-----编写Amzon的面试题
- 在linux下如何编译c程序和c++程序
- 如何编译能在android上运行的C程序
- linux下如何编译运行c程序
- linux 下如何编译c,c++程序
- Ubuntu14.04下如何编译c程序
- 在Linux下编译C或C++程序的教程
- 在ubuntu下编译Objective-C程序
- 用户图形界面的概念(读书笔记)
- JNDI全攻略
- 算法设计作业LIS(最长递增子序列)
- js中去除字符串str头尾的空格
- js中判断字符串是否为合法的email格式
- [C++] 如何在 C++ Builder 3.0 下编译含有 MFC 的程序?
- 判断用户选择的本地文件大小是否合法
- js中将日期类型转换成字符串型格式
- 计算阶乘的BASH SHELL代码
- [C++] 如何在 C++ Builder 3.0 下混用两大 Application Framework VCL & MFC?
- js中判断输入ip地址是否合法
- js中判断由字符串from和to代表的两个日期的先后关系
- [DEV] C++ Biulder 中改变公共对话框的内容
- [C++] C++ Builder 下实现端口读写