如何在 C++ Builder 3.0 下编译含有 MFC 的程序 ?

原创 2001年04月05日 15:38:00

如何在 C++ Builder 3.0 下编译含有 MFC 的程序 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 


虽然说 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++Builder及VC的DLL相互调用示例

C++Builder及VC的DLL相互调用示例 由于MS和Borland(CodeGear)两家的编辑器实现细节不同,造成了它们生成的DLL不能相互通用,因此给实际带来了很多的麻烦。下面来说一说如何...
  • shufac
  • shufac
  • 2016年12月21日 08:46
  • 1436

C++Builder 10.2编译android应用问题解决

因为装了android studio 2.3 所以就默认安装了android sdk和NDK,用的NDK的版本是r10d x64。在安装RAD Studio的时候,就没有选择安装android的sdk...
  • zdhsoft
  • zdhsoft
  • 2017年06月01日 21:17
  • 520

用VS2010编写的C++程序,在其他电脑上无法运行的问题

本文介绍了几种解决VS2010缺失dll的问题。
  • shufac
  • shufac
  • 2016年07月18日 18:44
  • 4213

C++Builder中编译MFC类库

1.编译条件: _X86_;_WINDOWS;_MSC_VER=1100;_AFX_PORTABLE;_AFX_NOFORCE_LIBS;_MT;_CRT_PORTABLE;_AFX_NO_DEBUG...
  • chinayu2007
  • chinayu2007
  • 2014年09月25日 12:51
  • 807

c++builder 如何实现一个应用程序只能打开一个进程

c++builder 如何实现一个应用程序只能打开一个进程 这样做有什么好处呢!主要体现管理类型中录入、修改、删除、增加等操作中,当一个用户,操作了一半,由于别的事情忘记了自己已经打开了一个进程,此...
  • txk15619567977
  • txk15619567977
  • 2013年05月20日 16:00
  • 2005

c++ 天气预报源代码

在vs2010下运行的一款c++的联网获取天气预报的代码,希望对初学者有所帮助,代码的注释也很详细,如果又不懂或者出错的地方请留言。 有界面用easyx做的界面,我把这个压缩包上传了, 网页的抓取代码...
  • clx55555
  • clx55555
  • 2016年10月24日 12:42
  • 1049

zeromq应用学习(1)——编译zeromq的示例程序

前段时间和crazyhadoop聊天中,他推荐了zeromq这个开源库。所以今天开始学习一下。看了一下zeromq的在线文档,感觉确实不错,准备学习一下。 我的目的是阅读zeromq的源代码...
  • u011425786
  • u011425786
  • 2014年03月03日 17:38
  • 746

在C++ Builder中打开浏览器加载页面

今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开。这个东东本身很简单哈。在C++ Builder 中有对应的API函数,下面我们一起来讲讲: 调用外部命令...
  • sevenkj
  • sevenkj
  • 2014年10月29日 09:59
  • 1176

在Android Studio中直接编译C/C++文件

http://blog.csdn.net/yuxiangyunei/article/details/38982815 在AS中打包.so文件很方便,直接在app/src/main目录下新建jni...
  • csu_yang
  • csu_yang
  • 2016年08月18日 11:02
  • 2077

设计模式之Builder模式 (C++实现)

刚开始我一直感觉建造者模式不太好懂,也许是我笨了点缘故,勤能补拙嘛,所以只能多看多想了 大话设计模式里面那个对于建造者模式我讲解,个人感觉不太好理解,我是看了很多遍也没体会到那样设计的精髓,后来在另...
  • i_like_cpp
  • i_like_cpp
  • 2013年05月30日 10:26
  • 2842
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在 C++ Builder 3.0 下编译含有 MFC 的程序 ?
举报原因:
原因补充:

(最多只允许输入30个字)