CJLibrary在 http://www.codejock.com/download.htm 最新的是6.09
BCGControl在http://www.codeproject.com/docking/BCGControlBar.asp最新的是4.7
对于初学者来说,VB,Delphi里对每个控件千变万化的属性设置确实很迷人,众多
的控件更为你程序增色不少。VC相对而言,差了很多,就那么几个干巴巴的Common
Control,连字体、颜色都不能设。
VC真的不能吗?当然不是。VC的精髓是藏于内,而不是曝于外的。您先别误会,我
写这篇文章的目的,并不是要给大家讲VC的精髓,真正VC的精髓我也没有领会到。我的
目的是推荐给大家一个类库--CJLibrary,利用这个库,你可以做出像Outlook,
DevStudio那样美观、方便的程序界面。(为了这个目的,我连光光版主都被撤了,:-< )
此文目标,是让对VC仅有一般了解的人就能轻松使用CJ,所以,不会涉及到有关
CJ实现原理的细节内容,如果可能,将来我会再写一些文章,聊一聊我在VC界面开发方面
的心得。
安装过程很简单,所有组件都选上,占用4.3M的空间。为表达方便,以下提到文件
路径时都指的是CJ的安装目录下的子目录、文件。
CJLibrary\*.* 是CJ的源代码,不含.h文件。
Include\*.* 是CJ的头文件,你自己编的程序所需要包含的头文件都在这里。
Example\*.* 是CJ的示例文件,能读懂这些代码,你也就知道CJLibrary应该怎么
用了。
如果你比较勤快的话,那么就别再听我絮叨了,现在就去读吧!
Wizards\*.* 是一些向导程序,编译这些程序之后,你的DevStudio的AppWizard里
便自动有了支持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中一个程序可以
有多种配置,缺省配置就是Debug和Release两种,分别用来调试和最终发行
执行文件。现在所作的事情就是为两种不同的配置分别生成必须的库文件。
这个工程中还有两个Unicode配置,是为支持Unicode的NT程序准备的,如果
你不需要Unicode支持,可以置之不理。
此时CJ的安装目录下会出现一个Lib目录,里面就是生成的库文件。CJ608Lib.*
对应Release配置,CJ608Libd.*对应Debug配置。*.lib是源程序链接时使用的
库文件,*.dll是在执行程序运行时调用的动态链接库文件。
CJLibrary\CJLibrary.dsw生成的库文件都是用于动态链接的,也就是说,
最后的执行程序必须有.dll文件的支持才能运行。能否让程序脱离.dll而独
立运行呢?当然可以了。
CJLibrary\CJLibraryStatic.dsw就是用于生成静态链接库文件的。打开,编
译各种配置,Lib目录下将增加CJ608LibStatic.lib和CJ608LibStaticd.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 For为All Configurations;
单击C/C++,变Category为Preprocessor;把CJ的Include目录的绝对路径
添到Additional includedirectories里;最后OK!
再编译,还有错,提示:
LINK : fatal error LNK1104: cannot open file "CJ608Libd.lib"
hehe...别着急,这是因为你的Library directory里还差CJ的路径。
Project->Settings->All Configurations->Link;变Category为Input;
把CJ的Lib目录的绝对路径添到Additional library path里;最后OK!
这回编译没问题了,但是按ctrl+F5运行程序又有了问题。haha.....拷贝
Lib\*.dll到你的工程目录下,对我来说是OutlookDemo\。
现在,郑重地按下ctrl+F5庆祝你的第一个CJ应用的首次运行……是不是眼
前一亮呀?
目前是动态链接,所以需要.dll的支持。下面将其改为静态链接。
Project->Settings->All Configurations->General;改Microsoft
Foundation Classes为Use MFC in a Static DLL。然后,Bulid->Rebuild
All。这时生成的执行文件就不需要CJ的.dll的支持了。
上面介绍的加Include和Library目录的方法只对单个工程有效,如果你想
一劳永逸,使以后所有的工程都能自动找到CJ的库和头文件,那么Tools->
Options->Directories,在Include files和Library file里都加上相应的路径。
其实最常用的两个Wizard是Wizards\Mdi和Wizard\Sdi,我选Outlook仅仅因为
他pp而已。
BCGControl在http://www.codeproject.com/docking/BCGControlBar.asp最新的是4.7
对于初学者来说,VB,Delphi里对每个控件千变万化的属性设置确实很迷人,众多
的控件更为你程序增色不少。VC相对而言,差了很多,就那么几个干巴巴的Common
Control,连字体、颜色都不能设。
VC真的不能吗?当然不是。VC的精髓是藏于内,而不是曝于外的。您先别误会,我
写这篇文章的目的,并不是要给大家讲VC的精髓,真正VC的精髓我也没有领会到。我的
目的是推荐给大家一个类库--CJLibrary,利用这个库,你可以做出像Outlook,
DevStudio那样美观、方便的程序界面。(为了这个目的,我连光光版主都被撤了,:-< )
此文目标,是让对VC仅有一般了解的人就能轻松使用CJ,所以,不会涉及到有关
CJ实现原理的细节内容,如果可能,将来我会再写一些文章,聊一聊我在VC界面开发方面
的心得。
安装过程很简单,所有组件都选上,占用4.3M的空间。为表达方便,以下提到文件
路径时都指的是CJ的安装目录下的子目录、文件。
CJLibrary\*.* 是CJ的源代码,不含.h文件。
Include\*.* 是CJ的头文件,你自己编的程序所需要包含的头文件都在这里。
Example\*.* 是CJ的示例文件,能读懂这些代码,你也就知道CJLibrary应该怎么
用了。
如果你比较勤快的话,那么就别再听我絮叨了,现在就去读吧!
Wizards\*.* 是一些向导程序,编译这些程序之后,你的DevStudio的AppWizard里
便自动有了支持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中一个程序可以
有多种配置,缺省配置就是Debug和Release两种,分别用来调试和最终发行
执行文件。现在所作的事情就是为两种不同的配置分别生成必须的库文件。
这个工程中还有两个Unicode配置,是为支持Unicode的NT程序准备的,如果
你不需要Unicode支持,可以置之不理。
此时CJ的安装目录下会出现一个Lib目录,里面就是生成的库文件。CJ608Lib.*
对应Release配置,CJ608Libd.*对应Debug配置。*.lib是源程序链接时使用的
库文件,*.dll是在执行程序运行时调用的动态链接库文件。
CJLibrary\CJLibrary.dsw生成的库文件都是用于动态链接的,也就是说,
最后的执行程序必须有.dll文件的支持才能运行。能否让程序脱离.dll而独
立运行呢?当然可以了。
CJLibrary\CJLibraryStatic.dsw就是用于生成静态链接库文件的。打开,编
译各种配置,Lib目录下将增加CJ608LibStatic.lib和CJ608LibStaticd.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 For为All Configurations;
单击C/C++,变Category为Preprocessor;把CJ的Include目录的绝对路径
添到Additional includedirectories里;最后OK!
再编译,还有错,提示:
LINK : fatal error LNK1104: cannot open file "CJ608Libd.lib"
hehe...别着急,这是因为你的Library directory里还差CJ的路径。
Project->Settings->All Configurations->Link;变Category为Input;
把CJ的Lib目录的绝对路径添到Additional library path里;最后OK!
这回编译没问题了,但是按ctrl+F5运行程序又有了问题。haha.....拷贝
Lib\*.dll到你的工程目录下,对我来说是OutlookDemo\。
现在,郑重地按下ctrl+F5庆祝你的第一个CJ应用的首次运行……是不是眼
前一亮呀?
目前是动态链接,所以需要.dll的支持。下面将其改为静态链接。
Project->Settings->All Configurations->General;改Microsoft
Foundation Classes为Use MFC in a Static DLL。然后,Bulid->Rebuild
All。这时生成的执行文件就不需要CJ的.dll的支持了。
上面介绍的加Include和Library目录的方法只对单个工程有效,如果你想
一劳永逸,使以后所有的工程都能自动找到CJ的库和头文件,那么Tools->
Options->Directories,在Include files和Library file里都加上相应的路径。
其实最常用的两个Wizard是Wizards\Mdi和Wizard\Sdi,我选Outlook仅仅因为
他pp而已。