如何在你的软件中实时编译并执行C/C++源程序
当人们发布一个软件时, 往往需要提供一些插件接口给OEM进行二次开发,
同时提供若干DLL库或COM组件给用户调用.
在本人看来这些方法能解决一些问题, 但不够灵活, 具有很多缺陷与限制.
这里我给读者提供一个方法: 直接执行C/C++源程序!
执行C/C++源程序的函数是:
int YXB_RunCppCode(char *codebuf,int codelen,int argc,char **argv);
参数
codebuf,codelen
当codelen = 0时, codebuf指向一个文件名,该文件是C/C++源程序或YC执行代码。
当codelen > 0时, codebuf指向一个缓冲区, 该缓冲区存放C/C++源程序或YC执行代码,
缓冲区长度为exe_len字节。
当codebuf表示文件名时, 该函数将文件读入缓冲区并判断它是否是YC执行代码,
如果是则执行它, 执行完后返回0; 如果不是, 则编译它, 若编译出错则将错误信息
存入文件c:/yc01/temp/y.err中并返回非0值, 若编译通过, 则生成YC可执行代码并执行它,
执行完后返回0。
当codebuf表示缓冲区时, 除无需将文件读入外, 执行过程与上述一样.
argc, ar