Javascript直接执行C/C++代码

1. Javascript代码用标签[%…%]嵌入执行C/C++源码
[%
//用[% % ]标签在Javascript代码中嵌入执行c/c++源码
#include "yc.h"
YHTML *phtml;
void main(YHTML *phtml)
{
   ::phtml = phtml;     //保存网页指针
}
char *getwindir(wchar_t *pstr,wchar_t *pa,char *pb,char *pc)
{
    static char m_iniFile[256];
    GetWindowsDirectoryA(m_iniFile,256);    //获得Windows系统目录
    YC_jsRunf(phtml, L"document.write(`%s <br>\n`)",pstr); //执行Javascript代码
    YC_jsRunf(phtml, L"document.write(`%s <br>\n`)",pa);   //执行Javascript代码
    printf("%s\n",pb);
    printf("%s\n\n",pc);
    return m_iniFile;
}
%]
    YC_form({ mystr:"人闲桂花落,", a:'夜静春山空。',
                  b:"月出惊山鸟,", c:`时鸣春涧中。` })//设置YSP参数request.form
    var astr = getwindir(request.form.mystr,request.form.a,request.form.b,
                        request.form.c); //执行标签[%%]内的c/c++函数getwindir()
    document.write(`系统目录: ${astr }`); //astr为调用c/c++代码所获得的系统目录

                             Javascript代码文件:coin.js

编译:用YC命令: ycc coin.js 生成 coin.exe。
运行:在cmd界面执行coin.exe后,将输出下列文字:

     人闲桂花落, <br>
     夜静春山空。 <br>
     月出惊山鸟,
     时鸣春涧中。

系统目录: C:\Windows

2. Javascript代码用YC_cppRun()函数执行C/C++源码文件
YHTML *phtml;
void main(YHTML *phtml)
{
    ::phtml = phtml;     //保存网页指针
    if((int)phtml < 1000)
      {
        printf("This file should be run by Javascript.\n");
        return;
      }
    wchar_t *wiptr;
    YC_jsRun(phtml, L"get_title()",0,&wiptr); //执行Javascript代码
    YC_jsRunf(phtml, L"printf(`%7s\n`)",wiptr); //执行Javascript代码
}
double run_c_func(char *pb,char *pc)
{
    YC_jsRun(phtml, L"runjs_func(`春宵一刻值千金`)"); //执行Javascript代码
    printf("%s\n",pb);
    printf("%s\n",pc);
    return 3.14159265358979323846;
}

                              c/c++代码文件:work.cpp

 YC_cppRun("work.cpp")     //执行c/c++文件
  let pval = run_c_func("花有清香月有阴。","歌管楼台声细细,")  //执行c/c++函数
  printf("%s\n",'秋千院落夜沉沉。');
  printf("%.15f\n",pval);

  function runjs_func(pstr)      //该函数被work.cpp执行
    {
      printf(`${ pstr },\n`)
    }
  function get_title()           //该函数被work.cpp执行
    {
      return "春宵";
    }

                              Javascript代码文件:work.js

编译:用YC命令: ycc work.js 生成 work.exe。
运行:在cmd界面执行work.exe后,将输出下列文字:
                        春宵
                  春宵一刻值千金,
                  花有清香月有阴。
                  歌管楼台声细细,
                  秋千院落夜沉沉。
                  3.141592653589793

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值