Windows 上的管道 |
|
c = "''some shell command''" -- e.g. 'dir' readfrom("|" .. c) -- this part will alway fail in standard Windows compiled binary print(read("*a"))
在 lua-l 上,David Burgess 写道
On VC6, Lua 4.0.1 from the project menu Goto - "Project/Settings" Tab - "C/C++" Select "All configurations" Edit field - "Preprocessor definitions" and paste at the end of the existing string (which should already have something like "WIN32,_CONSOLE,_MBCS") POPEN,popen=_popen,pclose=_pclose
也尝试了 Windows 上的 lcc。
您可以在编译器->设置面板上将 POPEN 添加到 #defines 中。
但是,_popen 存在一个问题。Win32 API 文档指出它只在控制台应用程序中有效,因此如果您在 Windows 应用程序中嵌入 Lua,那么就会出现问题。但是,有一个补丁 [1],并且已经在 SciTE 中测试过(这也提供了一个“静默”版本的 os.execute)。