欢迎访问 Forcal程序设计www.forcal.net
     
  推荐使用新脚本Lu:Lu是对Forcal的完善和发展,但与Forcal相比,Lu更简洁实用。

Lu使用说明    下载试用

 

Forcal V9.0 使用说明

欢迎使用 FORCAL 开发使用说明 !
借助本说明可以了解 FORCAL V9.0 的全部详细信息。
1.熟悉Forcal基本语法(Forcal核心库语法和Forcal扩展库语法)。
2.使用Forcal核心库进行程序开发。
3.开发Forcal扩展动态库。
4.开发基于FcData的扩展库。
5.开发基于MForcal的扩展库。
目  录 简  介
1 什么是Forcal     Forcal是一个字符串表达式编译运行动态库。
关于Forcal的声明  
Forcal运行要求     Forcal是绿色软件,免安装,不读写注册表。
    Forcal32W.dll V9.0 用VS 2008编译生成,动态库版本需要MSVC运行库的支持,静态库版本不需要。软件包中提供了Forcal的两种版本。Forcal动态库版本文件小于150K,静态库版本约260K~300K。使用Forcal动态库版本时若程序不能正常运行,需要用户自行安装所需的MSVC运行库,安装方法从网上可以查到,本软件包中不再提供。强烈建议使用Forcal的动态库版本。
    由于VS 2008的编译机制所限制,Forcal32W.dll V9.0不能在Windows98中运行。
2 Forcal核心库     只有一个动态库文件Forcal32W.dll。
Forcal用户     Forcal用户有软件用户和编程用户两种。软件用户指使用由Forcal支持的软件的用户;编程用户指使用Forcal编程的用户。若不特别说明,一般指Forcal的软件用户。
Forcal新手参考     概括介绍Forcal的特点与功能,使用户对Forcal有一个大致的了解。介绍学习Forcal必须掌握的基本语法知识。
Forcal用户指南     从软件使用者的角度介绍Forcal的功能和用法。
    所有源代码可通过测试程序 ForcalTest.exe、ForcalDemo.exe 或 MForcalDemo.exe 进行演示。ForcalTest是控制台程序,输出计算结果比较快。ForcalDemo和MForcalDemo是windows程序,界面更友好一些。
Forcal编程指南     Forcal用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,可供C/C++、C#、VB、delphi、FORTRAN等程序使用。介绍如何使用Forcal进行软件开发。
循序渐进Forcal例程     从简单到复杂的一些使用Forcal编程的例子。
如何在Forcal中添加对象     开发者在软件中添加一些对象,然后通过脚本操作这些对象,这是许多程序员的梦想。本文提供的是在主程序中添加对象的例子,这些例子都是控制台应用程序。
数据存储和检索     数据存储和检索是Forcal的另一特色。可以使用Forcal保存任意类型的数据,且具有很高的查找效率。
    相关函数请参考Forcal编程指南,例子请参考源程序ForcalData.cpp(在文件夹“ForcalData”中)和头文件Forcal32W.h。
演示程序源代码     演示程序ForcalTest、ForcalDemoMForcalDemo实现了不同寻常的功能,但源代码并不长,熟悉这些代码,就可以随心所欲地使用Forcal!
    源代码在文件夹code的相关子文件夹中,C/C++例子要加入头文件forcal32w.h一起进行编译。此外还有C#调用Forcal的例子 、Delphi7调用Forcal的例子。
    C/C++及C#源代码由VS 2008编译通过,注意要将活动解决方案配置为“Release”。Delphi源代码由Delphi7编译通过。
    通过源代码,可以了解如何在程序中加载使用Forcal32W.dll,如何使用Forcal编译字符串表达式,如何向Forcal注册自定义的各种常量或函数,如何加载Forcal扩展动态库等等。
3 Forcal演示程序     虽然是演示程序,但并不局限于演示一些小程序,借助于本软件包中附带的Forcal扩展动态库,演示一些大型计算项目是完全可以的。
ForcalTest     控制台演示程序。由Forcal支持。
ForcalDemo     windows演示程序。由Forcal支持。
MForcalDemo     windows演示程序。由Forcal和MForcal支持。
AutoMfc     Forcal实用程序,由Forcal和MForcal支持。可以自动运行扩展名为.AFC的MForcal源文件。
OpenFC     OpenFC全面演示了Forcal的应用,由Forcal和MForcal支持。可以从作者网站、天空软件站、华军软件园等多家站点下载到该程序。
4 Forcal扩展动态库

    使用Forcal核心库的输出函数,用户可构建自己的处理系统。但作者也根据Forcal核心库的输出函数,构建了一套系统——以Forcal扩展动态库的形式对Forcal进行了功能扩展,FcData、MForcal、FcString、FcSystem等即是这套系统的重要组成部分;这套系统是以FcData和MForcal两个库为基础的,FcData提供了基本数据类型扩展功能,MForcal可对Forcal源程序进行模块化编译。

Forcal扩展动态库     Forcal扩展库基本格式。介绍如何对Forcal进行功能扩展。Forcal扩展动态库中仅有一个输出函数 FcDll32W(...),设计和应用都很方便。可用C/C++、delphi、FORTRAN等语言设计Forcal扩展动态库。
例子1:FcConst.dll     用于向Forcal添加常量,添加完常量即可卸载该库。
    源程序文件和模块定义文件在文件夹“dll_FcConst”中。
    用VS 2008新建一个“Win32 dll”工程,将相应的源程序文件、模块定义文件和头文件Forcal32W.h添加到该工程,编译时将活动解决方案配置为“Release”。
例子2:Example.dll     向Forcal注册了几个函数。
    源程序文件和模块定义文件在文件夹“dll_Example”中。
    编译方法同上。
用Delphi设计Forcal扩展动态库     用Delphi设计Forcal扩展动态库的简单例子。源程序文件在文件夹“dll_DelphiFcDll”中。
如何在Forcal扩展库中添加对象     开发者在软件中添加一些对象,然后通过脚本操作这些对象,这是许多程序员的梦想。
    本文提供的是在Forcal扩展库中添加对象的例子,有两种方法可以将一个任意的对象添加到Forcal中,一种是添加FcData可管理的对象;另一种是通过Forcal32W.dll的输出函数添加对象。
在软件中加入Forcal&MForcal支持     在软件中加入Forcal & MForcal支持是一件很容易的事,比直接使用Forcal设计程序要简单地多。有了MForcal提供的模块化编译功能的支持,可在软件中方便地使用脚本函数。如果软件能动态地加载Forcal扩展库,软件将由此获得无限的可扩充性 。
5 两个重要的Forcal扩展库     是其他Forcal扩展库运行的基础。
Forcal数据扩展动态库FcData     该库对Forcal的数据类型进行了扩展。基本数据类型包括简单数据和数组,可以自定义类。通过FcData32W.dll的输出函数接口,可以向FcData添加任意复杂的数据类型。基本操作对象是FcData数据指针。
Forcal模块化编译运行库MForcal     对Forcal源程序进行模块化编译,能够编译运行具有固定格式的源程序(字符串表达式),源程序中可以使用C++风格的注释。
6 其他Forcal扩展库     有些扩展库以MForcal或FcData为基础,参考这里
QuitFc     退出Forcal运行时的无限循环。任意可接受输入的窗口,按 Ctrl+Alt+Q(q) 键可以退出Forcal运行时的无限循环。
    根据需要加载该库。
Forcal系统函数库     主要是Forcal系统或操作系统相关的函数。
Forcal标准输入输出系统     Forcal标准输入输出系统。包含基于Windows的输入输出系统。
Forcal字符串库     Forcal字符串库。包含ANSI及Unicode字符串的各种操作函数,包含正则表达式函数。
Forcal数值计算扩展动态库FcMath     该库的数值算法是以矩阵为基础,并进行了运算符重载,具有内存消耗低、执行效率高、代码简洁、实用性强的特点。
Forcal数值计算扩展动态库XSLSF     XSLSF算法主要选自《C常用算法程序集》第二版,徐士良主编。在XSLSF中的函数是通过二级函数命名空间“XSLSF”输出的,所有函数均具有类似“XSLSF::rmul”的格式,全部是实数函数。主要内容包括矩阵运算,矩阵特征值与特征向量的计算,线性代数方程组的求解,非线性方程与方程组的求解,插值与逼近,数值积分,常微分方程组的求解,极值问题的求解,复数、多项式与特殊函数的计算等。这些算法都是行之有效的,基本可以满足解决工程中各种实际问题的需要。
Forcal数值计算扩展动态库FcIMSL     IMSL是一个集合数学与统计函数的链接库,拥有许多精准的数学统计算法,它的强大、可靠的数学与统计链接库能够在执行效率与计算资源间取得极佳的平衡。本说明包含封装IMSL库函数的方法。
Forcal参数优化扩展动态库FcOpt     包含一些参数优化函数,具有极强的全局优化能力。
Forcal窗口库FcWin     基于Windows的窗口库。
Forcal图形库OpenFcGl     基于OpenGL的图形库。
Forcal图形库FC2D     基于Windows API的2D图形库多线程动态绘制图形是FC2D的基本特点。
7 General Forcal DLL     GForcal32W.dll是一个通用的Forcal脚本系统(简称GForcal)。GForcal可看作应用程序与Forcal之间的一个接口,但GForcal简化了Forcal脚本的使用。
8 Forcal高级语法概念  
Forcal中的对象、函数和模块     Forcal的核心库Forcal32W.dll中没有类和对象的概念,但Forcal32W.dll对功能扩展提供了很好的支持,利用Forcal32W.dll本身提供的编程功能和Forcal扩展动态库FcData及MForcal,很容易地构造出类及对象的概念。由于动态编译的特点,Forcal完全可以看作是面向对象的。
Forcal中的类模块及数据结构     Forcal的核心库Forcal32W.dll中没有类和对象的概念,但Forcal32W.dll对功能扩展提供了很好的支持,利用Forcal32W.dll本身提供的编程功能和Forcal扩展动态库FcData及MForcal,很容易地构造出类及对象的概念。由于动态编译的特点,Forcal完全可以看作是面向对象的。
9 Forcal软件构成     Forcal软件的样子。
Forcal软件构成     由Forcal32W.dll支持的软件简称为Forcal软件。Forcal软件可分为两类:可执行程序和Forcal扩展模块。Forcal软件的构成是高度组合式的。
Forcal的用途     从三个方面讨论Forcal的应用。
10 其他  
最新升级内容  
 
关于Forcal的声明
 
    1、任何人在使用或传播Forcal时,默认完全同意该声明。
    2、免责声明:尽管作者对Forcal32W.dll作了极为严格的测试,但仍不能保证没有丝毫错误,由于这些错误或用户判断错误造成的任何后果,本人皆不承担任何法律责任,不支付任何直接和间接的经济赔偿。如果您使用本软件或注册本软件,就默认认同了该“免责声明(disclaimer)”。特此声明。
    3、您可以自由使用和传播Forcal32W.dll而不受任何限制,但您不能对Forcal32W.dll进行仿制、反汇编或逆向工程,或对Forcal32W.dll作其他任何形式的更改。
    4、作者仅对Forcal32W.dll拥有全部版权,由Forcal32W.dll支持的实用程序的版权归实用程序的开发者所有。
    5、最终用户(非商业性用户)可永久免费使用Forcal!作者仅对涉及Forcal(包括Forcal软件本身及相关资料)的商业性行为收费。
    6、任何人不能将Forcal32W.dll用于任何非法用途。
    7、本软件受版权法和国际条约保护。任何人在使用和传播Forcal32W.dll时若违反以上条款,将在法律许可的范围内受到最大可能的起诉。

简介
 
    通常,使用各种高级语言如C/C++、VB、delphi、FORTRAN等设计的程序,不能对源代码进行动态编译,Forcal可为所有这些应用程序增加对字符串源代码的动态编译功能。Forcal可用于各类数学软件的设计,也可用作报表处理、web、组态软件、游戏等的脚本,具有很高的执行效率。
    Forcal32W.dll是Forcal的32位Unicode版本,是一个对Unicode
字符型表达式进行编译计算的动态库。表达式中可以使用的运算符有+、-、*、/、^、>、>=、<、<=、==、!=、&、|、!、++、--等等,Forcal具有数值计算、逻辑运算、关系运算、字符数据处理、流程控制、函数调用等许多的可编程功能。
    Forcal支持中文编程,可以使用中文标识符,如中文函数名、中文变量等。

    Forcal用键树保存和检索数据信息,可以用Forcal保存和检索任意类型的数据,存储效率高,且具有很高的查找效率。
    Forcal有许多内置的基本函数(一级函数和二级函数),不过可以使用(C/C++)、Delphi、FORTRAN等编译器方便地扩充这些基本函数(二级函数),你可以让这些函数完成不同凡响的功能。
    Forcal支持整数、实数和复数三种类型的表达式,可以使用这些表达式在Forcal中设计自定义的函数。
    Forcal在调用扩充的或自定义的函数时,就象调用系统内置的函数一样,没有任何分别。
    Forcal对所有的函数都支持递归调用,不管这些函数是系统内置的,扩充的,还是自定义的。
    Forcal在调用函数时,既支持传值调用,也支持传址调用(引用调用),当采用后一种方式时,可以从函数返回更多的值。
    Forcal对代码进行尽可能的优化,因而运行速度也非常地出色,一级函数的计算速度约为(C/C++)或FORTRAN速度的50%左右,二级函数的速度稍有降低。
    Forcal编译系统支持模块化编译,对设计复杂的软件项目很有帮助。
    Forcal编译系统可以对编译时出错的位置进行准确定位,排除错误非常方便。
    Forcal用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,可供C/C++、C#、VB、delphi、FORTRAN等程序使用。
    很容易对Forcal进行功能扩展,Forcal扩展动态库中仅有一个输出函数 FcDll32W(...),设计和应用都很方便。可用C/C++、delphi、FORTRAN等语言设计Forcal扩展动态库。
    虽然Forcal32W.dll仅支持32位程序,但在32位平台上编写的Forcal代码,以后可不加修改地运行于64位平台。

最新升级内容
 

    编程用户(2011.08.15):

    1.在Forcal核心库中新增分号运算符:逗号、冒号和分号运算符是等价的,三者可增加程序的可读性。
    2.在MForcal中新增双分号分隔符,用以指出该表达式运行后不输出该表达式的值。

    编程用户(2011.07.12):

    1.在Forcal核心库中新增一级函数:相反数函数opp(x)。主要用于函数oo中,用opp(x)代替-x以避免运算符的重载。
    2.在MForcal中新增错误处理函数(二级函数)seterr、geterr、clearerr等。

    编程用户(2011.05.08):

    1.升级了FcData、FcSystem和FcString三个扩展库,更好地支持了运算符重载。

    编程用户(2011.05.03):

    1.新增用Delphi设计Forcal扩展动态库的简单例子。

    编程用户(2011.03.28):

    1.核心库新增函数InsertKeyP、SignGoodObj和GC。增强了对象的运算符重载功能,并新增垃圾收集器。

    软件用户(2011.03.28):

    1.新增垃圾收集器及相关函数

    编程用户(2011.03.06):

    1.新增Delphi7调用FORCAL的例子。

    软件用户(2011.02.06):

    1.更新并增强了优化库FcOpt中 的优化函数,提高了全局优化能力及易用性

    软件用户(2011.01.17):

    1.优化库FcOpt中新增函数isolve和solve,可求解方程(组)的全部解

    软件用户(2010.12.18):

    1.新增基于Windows API的2D图形库FC2D多线程动态绘制图形是FC2D的基本特点。

    编程用户(2010.11.27):

    1.新增通用FORCAL脚本系统GForcal(General Forcal DLL)。GForcal可看作应用程序与Forcal之间的一个接口,但GForcal简化了Forcal脚本的使用。

    软件用户(2010.9.15):

    1.增强了函数参数运算符“.”的功能,新增函数oset、oget,以支持简洁的函数调用。
    2.新增
数值计算扩展动态库FcMath,该库以矩阵运算为基础 ,并通过运算符重载使代码简洁。

    编程用户(2010.9.15):

    1.输出函数DeleteConstOrFunction、DeleteKeyDeletePrivateKey返回一个bool值,表示操作是否成功。
    2.增强了输出函数
ExMsgWithForcal的运算符重载功能。
    3.FcData的输出函数
RegFcDataType有更改,以支持数据类型的运算符重载功能,新增部分输出函数。

    软件用户(2010.8.5):

    1.新增函数oo{... ...}、o(p,... ...)、to(p)、oofree(p),用于支持运算符重载。

    编程用户(2010.8.5):

    1.扩充了输出函数ExMsgWithForcal的功能,以支持运算符重载。

    软件用户(2010.6.3):

    1.新增函数free(p),用于记录申请的对象,可在销毁表达式时自动销毁这些对象。
    2.新增括号连接运算符“:=”。
    3.允许设置编译表达式时将未定义的标识符编译为模块变量。默认情况下,模块变量须先定义,后使用。

    编程用户(2010.6.3):

    1.允许设置编译表达式时将未定义的标识符编译为模块变量。默认情况下,模块变量须先定义,后使用。

    软件用户(2010.3.12):

    1.新增基于IMSL的数值计算动态库FcIMSL。

    软件用户(2010.2.10):

    1.在Forcal字符串库FcString中增加了正则表达式的支持
    2.新增参数优化扩展动态库FcOpt。

    软件用户(2009.8.1):

    1.支持中文编程,可以使用中文标识符,如中文函数名、中文变量等。
    2.使用Unicode字符串作为Forcal默认字符串。扩展了字符串中的转义字符。可通过转义字符定义静态空间。
    3.支持静态数组,相关的存取函数是一级函数,具有很高的执行效率。
    4.整数表达式中的整数升级为64位,可进行更大的数的运算。
    5.在整数表达式中增加了位运算函数,位运算函数是一级函数,具有很高的执行效率。
    6.增加、修改、删除了部分一级函数及二级函数。
    7.增加了访问命名空间的函数using。
    8.修改了部分FcData函数,特别增加了标准格式化输出函数printff和printfs。
    9.新增
FcIO、FcString、FcSystem等扩展动态库,极大地丰富了Forcal系统的功能。另新增Forcal数值计算扩展动态库XSLSF32W.dll,基本可以满足解决工程中各种实际问题的需要。
    10.优化了演示程序ForcalTest,新增演示程序ForcalDemo可演示大的计算项目。

    编程用户(2009.8.1):

    1.表达式字符串改为wchar_t字符串(Unicode字符串)Forcal32W.dll的大部分输出函数使用wchar_t字符串,少部分函数仍使用char字符串。
    2.整数表达式中的整数
升级为64位
    3.编译表达式返回的错误代码新增37、38、39。
    4.指针数据保存在整数、实数或复数的前4个字节中。
    5.
FcData中real32数据(相当于C中的float数据)保存在整数或实数的前4个字节中
    6.FcData中使用Unicode字符串作为默认字符串
    7.强烈建议Forcal扩展动态库中的函数使用命名空间命名方式。
    8.编程用户应编写移植性高的代码,可方便地移植到64位平台。

版权所有© Forcal程序设计 2002-2011,保留所有权利
E-mail: forcal@sina.com  QQ:630715621
最近更新:
2013年09月06日