找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16285|回复: 2

[其他] 控制台CAPI解释器CAPIS.EXE

[复制链接]
发表于 2017-2-28 19:03:41 | 显示全部楼层 |阅读模式
其实就是CLGO语言内置了CAPI.DLL,只有19KB,但比批处理功能强很多。运行速度是批处理的5倍,适合做控制台游戏开发。总之CAPI能做到,CAPIS脚本解释器都能做,并且CAPIS不需要cmd也能运行,支持直接拖拽运行脚本。由于之前已经开源了CLGO解释的代码,就不再重复贴码了,只是内嵌了一个capi而已。
  1. 控制台C版API调用解释器,支持IF~ELIF、WHILE、FOR等条件循环语句,可用的内建命令
  2. 有"CAPI", "LINK", "STOP", "EXIT", "WAIT", "PAUSE", "PRINT", "LETS", "CLEAN", "CLS"。

  3. 可以实现跟CAPI完全一样的API调用效果,但比CAPI的批处理速度快5倍。非常接近原生C语言的速度,且支持浮点数,表达式类传参。
复制代码
下载:http://bcn.bathome.net/s/tool/index.html?key=CAPIS

简单的应用,弹出对话框:
  1. FUN MAIN
  2.         LINK L"USER32" L"KERNEL32"
  3.         CAPI =MessageBoxW 0 L"你好" L"message" 1
复制代码
控制台图显:

  1. FUN DRAW :HICON :HCMD :HDC
  2.         LINK  L"USER32" L"KERNEL32"
  3.         CAPI :HICON=LoadImageW 0 L"1.ico" 1 0 0 16
  4.         CAPI :HCMD =GetConsoleWindow
  5.         CAPI :HDC  =GetDC :HCMD
  6.         FOR ::A 1 1000
  7.         [
  8.                 CAPI =DrawIconEx :HDC ::A*2 0 :HICON 128 128 0 0 3
  9.                 CAPI =Sleep 20
  10.                 CLEAN
  11.                 CLS
  12.         ]

  13. FUN MAIN
  14.         DRAW 0 0 0
  15.         PAUSE
复制代码
当然非常推荐使用开源的tincs,它才是能在批处理中原生书写C代码的解释器http://www.bathome.net/thread-42497-1-2.html
类似功能的还有ICMD,一个还在完善的项目,http://www.bathome.net/thread-43259-1-1.html
ICMD脚本,挖地道
  1. ::*****************************************************************************
  2.   @IF [%1]==[] ("%~DP0ICMD.EXE" /C "%~F0" 1&EXIT)&@REM ICMD SCRIPT 2017~2019
  3. ::*****************************************************************************

  4. @echo off
  5. REM 初始化库文件
  6. set/f=LinkDllW L"USER32" L"KERNEL32" L"MSVCRT"

  7. set/f hIcon0=LoadImageW 0 L"graphcs\_p0.ico" 1 0 0 16
  8. set/f hIcon1=LoadImageW 0 L"graphcs\_p1.ico" 1 0 0 16
  9. set/f hIcon2=LoadImageW 0 L"graphcs\_p2.ico" 1 0 0 16
  10. set/f hIcon3=LoadImageW 0 L"graphcs\_p3.ico" 1 0 0 16
  11. set/f wIcon =LoadImageW 0 L"graphcs\_b.ico"  1 0 0 16
  12. set/f bIcon =LoadImageW 0 L"graphcs\_w.ico"  1 0 0 16

  13. set/f hCMD =GetConsoleWindow
  14. set/f hDC  =GetDC %hCMD%

  15. REM 绘制背景地图
  16. for /l %%i in (0,32,800) do (
  17.         for /l %%j in (0,32,600) do (
  18.                 set/f =DrawIconEx %hDC% %%i %%j %bIcon% 32 32 0 0 3
  19.         )
  20. )

  21. REM 绘制起点人物
  22. set/a "X=0,Y=0, hIcon=hIcon3"
  23. set/f =DrawIconEx %hDC% %X% %Y% %hIcon% 32 32 0 0 3

  24. REM 循环读取按键
  25. :LOOP
  26. SET/A "PREX=X, PREY=Y"
  27. set/f key=_getch
  28. if %key% geq 97 (set/a key-=32)
  29. if %key% equ 87 (set/a Y-=32,hIcon=hIcon1)
  30. if %key% equ 83 (set/a Y+=32,hIcon=hIcon3)
  31. if %key% equ 65 (set/a X-=32,hIcon=hIcon0)
  32. if %key% equ 68 (set/a X+=32,hIcon=hIcon2)
  33. set/f =DrawIconEx %hDC% %PREX% %PREY% %wIcon% 32 32 0 0 3
  34. set/f =DrawIconEx %hDC%    %X%    %Y% %hIcon% 32 32 0 0 3
  35. goto LOOP
复制代码

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1 666

查看全部评分

发表于 2017-3-1 13:02:58 | 显示全部楼层
你玩得好开心
 楼主| 发表于 2017-3-1 14:27:18 | 显示全部楼层
回复 2# codegay
哈哈, 我也觉得没什么可玩了,几乎都体验了,原来编程是这样简单。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:22 , Processed in 0.018071 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表