C++怎样执行保存在字符串中的语句!
VC中使用ADO+SQLSERVER2000做数据库应用。因为客户的需求偶尔要改变,所以客户要求有一项功能就是允许客户自定义多个计算公式或修改已经设置的公式,并且要求在DataGrid中修改的记录时候根据公式立即更新。
举个简单的例子如工资核算:
假设计算公式为:
实发工资 = 应发工资 - 扣除费用
ADO的RecordSet的fields(0)表示实发工资、fields(1)表示应发工资、fields(2)表示扣除费用。
用户设置的计算公式保存在字符串中,如下:
CString cFormula("fields(0)=fields(1)-fields(2)");
问题是:在VC++中怎样让cFormular中保存的"fields(0)=fields(1)-fields(2)"表达式执行?说白了,就是怎样执行一个字符串中的语句,例如"int a = 1+2;"。
以前用VFP的时候做这个非常简单,使用VFP的宏代换(&)功能就行,例如:
Local cExpr as string
cExpr = "fields(0)=fields(1)-fields(2)"
&cExpr.
用VFP就这么简单,VC++怎么实现类似的功能?不要告诉我编译型的语言没有这个功能,解释型的语言才有,C++可是史上最牛的语言啊,连这个都实现不了?