static-php-cli
static-php-cli copied to clipboard
How does micro.sfx plus php file not display terminal?
micro.sfx + php文件生成的exe中,如何不显示终端呢? 就像php-win.exe那样
php-win.exe 文件.php
micro 的 win32 构建模式好像有点问题,我之前尝试过。可能后面有时间再看看了。理论上说编译 micro 的时候加上 --enable-micro-win32=yes
就行,但是不知道为何这个 flag 不生效,可能需要 dixyes 或者其他更了解 win32 API 的人来解答了。
虽然我不会win32 API,但经过我的的研究已经解决了这个问题!
新建文件 micro_win32.c
#define PHP_MICRO_WIN32_NO_CONSOLE 1 // 设置这个变量是关键
#include "php_micro.c"
修改 config.w32
注释前面的SAPI('micro', 'php_micro.c php_micro_fileinfo.c php_micro_helper.c php_micro_hooks.c', 'micro.exe', '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1');
if (PHP_MICRO_WIN32 == "yes") {
SAPI('micro', 'micro_win32.c php_micro_fileinfo.c php_micro_helper.c php_micro_hooks.c', 'micro.exe', '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1');
ADD_FLAG("CFLAGS_MICRO", "/D PHP_MICRO_WIN32_NO_CONSOLE");
}else{
SAPI('micro', 'php_micro.c php_micro_fileinfo.c php_micro_helper.c php_micro_hooks.c', 'micro.exe', '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1');
}