界面编程总结(3)

CJLibrary界面编程

在进行项目开发时,功能是最主要的,逐一设置单纯的控件外观与高效率的程序开发是相互矛盾的。在这里推荐给大家一个类库--CJLibrary,利用这个库,你可以做出像Outlook, DevStudio那样美观、方便的程序界面,让读者朋友在程序界面程序设计中享受一下RAD

一、CJLibrary安装与环境配置

CJ是一套基于MFCVC++界面开发类库,源代码公开,可以网上免费下载。它的主

页是http://www.codejock.com,哈工大的同学可以在这两个地址下载6.08版:

ftp://ftp.hit.edu.cn/incoming/ShareCode/VC/Advanced_UI/CJLibSetup608e.exe

ftp://mtftp.hit.edu.cn/incoming/yang-10-31/CJLibSetup608e.exe
安装过程很简单,所有组件都选上,占用4.3M的空间。为表达方便,以下提到文件路径时都指的是CJ的安装目录下的子目录、文件。

CJLibrary\*.*
CJ的源代码,不含.h文件。

Include\*.*
CJ的头文件,你自己编的程序所需要包含的头文件都在这里。

Example\*.*
CJ的示例文件,能读懂这些代码,你也就知道CJLibrary应该怎么

用了。

如果你比较勤快的话,那么就别再听我絮叨了,现在就去读吧!

Wizards\*.*
是一些向导程序,编译这些程序之后,你的DevStudioAppWizard

便自动有了支持CJ的几个Wizard。这是使用CJLibrary最简单的方法,我们从这里谈起
……

在开始使用CJ之前,要作些准备工作,那就是编译生成CJ应用需要的.lib.dll文件。打开CJLibrary\CJLibrary.dsw,如果用的是VC6,会出现一个提示框,问你是否把VC5的工程转为VC6的工程。回答是就Ok了,没问题的。如果用的是VC5,就没有这个提示了。CJ就是在VC5下编的。

首先切换Active Project Configuration。选Build菜单里的Set Active Configuration...设置激活配置为CJLibrary-Win32 Release,然后按F7编译。再切换激活配置为CJLibrary-Win32 Debug,编译。VC中一个程序可以有多种配置,缺省配置就是DebugRelease两种,分别用来调试和最终发行执行文件。现在所作的事情就是为两种不同的配置分别生成必须的库文件。这个工程中还有两个Unicode配置,是为支持UnicodeNT程序准备的,如果你不需要Unicode支持,可以置之不理。此时CJ的安装目录下会出现一个Lib目录,里面就是生成的库文件。CJ608Lib.* 对应Release配置,CJ608Libd.*对应Debug配置。*.lib是源程序链接时使用的库文件,*.dll是在执行程序运行时调用的动态链接库文件。

CJLibrary\CJLibrary.dsw
生成的库文件都是用于动态链接的,也就是说最后的执行程序必须有.dll文件的支持才能运行。能否让程序脱离.dll而独立运行呢?当然可以了。

CJLibrary\CJLibraryStatic.dsw
就是用于生成静态链接库文件的。打开,编译各种配置,Lib目录下将增加CJ608LibStatic.libCJ608LibStaticd.lib两个库文件。这两个文件体积明显大了很多。


Wizards\
下有六个Wizard源代码,每编译一个都会向DevStudio里添加一个Wizard,这里仅以Outlook为例。

打开Outlook\Outlook.dsw

首先切换激活配置为Outlook-Win32 Release,然后编译。此时,这个Outlook Wizard就已经被加到DevStudio的集成环境中了,接下来就可以用它建立你的Outlook了。

建立过程是这样的:File->New->Projects->CJ Outlook AppWizard,在Project name里添上你想要的工程名(比如我用OutlookDemo)Location里指明你要保存工程的目录,然后Ok!不用理会接下来的对话框,再次Ok!一个属于你的CJ工程就建好了。

编译一下看看,提示出错:

Cannot open include file: 'CJLibrary.h': No such file or directory
这是因为你没有把'CJLibrary.h'加到Include Directory里。怎么加呢?

Project->Settings
;对话框里改变Settings ForAll Configurations;单击C/C++,变CategoryPreprocessor;把CJInclude目录的绝对路径添到Additional includedirectories里;最后OK

再编译,还有错,提示:

LINK : fatal error LNK1104: cannot open file "CJ608Libd.lib"
别着急,这是因为你的Library directory里还差CJ的路径。

Project->Settings->All Configurations->Link
;变CategoryInput;把CJLib目录的绝对路径添到Additional library path里;最后OK

这回编译没问题了,但是按ctrl+F5运行程序又有了问题。Lib\*.dll到你的工程目录下,对我来说是OutlookDemo\

目前是动态链接,所以需要.dll的支持。下面将其改为静态链接。

Project->Settings->All Configurations->General
;改Microsoft Foundation ClassesUse MFC in a Static DLL。然后,Bulid->Rebuild All。这时生成的执行文件就不需要CJ.dll的支持了。

上面介绍的加IncludeLibrary目录的方法只对单个工程有效,如果你想一劳永逸,使以后所有的工程都能自动找到CJ的库和头文件,那么Tools->Options->Directories,在Include filesLibrary file里都加上相应的路径。

二、使用CJLibrary控件进行界面开发

关于这方便的内容网上很少有中文资料,在这里参考:

Visual C++界面编程技术10 使用CJLibrary控件开发界面应用程序。(见P469

Visual C++界面编程技术11 使用CJLibrary工程向导进行界面程序设计。(见P498

你可能感兴趣的:(编程,C++,c,mfc,vc++)