์ฌ์ฉ์ / ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ ํน์ ๋ฌธ์๋ Mudlet ๊ธฐ๋ฅ์ ์ํฅ์ ์ฃผ๊ฑฐ๋ ๋ฐฉํดํ์ง ์์์ผํฉ๋๋ค.
์ด๊ฒ์ Mudlet์ ๋ํ ์ต๊ทผ ์
๋ฐ์ดํธ์์ ๋์จ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ ๋จ์ํ ๊ฐํ์ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์์์ํต๋๋ค.
C:\Program Files\
์์ ์ฌ์ฉ์ ํ๋กํ๋ก ๋ณ๊ฒฝํ๋๋ฐ ์ต๊ทผ์ ๊ทธ ์์น์์ ๋ณ๊ฒฝ ํ ๋ด์ฉ์ด ๊ธฐ์ต ๋์ง ์์ต๋๋ค. UTF-8 ๊ฒฝ๋ก ์ด๋ฆ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผํ๋ ๊ฒ์ฒ๋ผ ์ฝ๋ _looks_[์ค๋ฅ] LuaGlobal.lua ์ปดํ์ผ ์ค๋ฅ
Lua ์ค๋ฅ : /LuaGlobal.lua๋ฅผ ์ด ์ ์์ : ํด๋น ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค.
Win7์ Mudlet 3.8.1
Windows๋ ๊ฒฝ๋ก ์ด๋ฆ์ด ์ด์ํ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค. Lua์ ํ์ผ ๊ธฐ๋ฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ๋์ ๋ ๊ฒฝ๋ก ์ด๋ฆ์ ์ ๊ณตํด์ผํฉ๋๋ค. C ++ ์ฝ๋์์ C ++ 11 ์์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ (๊ทธ๋ฆฌ๊ณ QObject::tr(
... )
์ผ๋ก Qt ๋ฒ๊ทธ๋ฅผ ์ฒ๋ฆฌํ์ง ์์ ์ ์์ต๋๋ค) ๋จ์ผ /
๊ด์ฐฌ์ ์์คํ
์์ํ ํ๋ ์ฝ๋ฉ ๊ฒฝ๋ก ์ด๋ฆ์์ * ์ด์ค \\\\
๊ฐ ๋ฃจ์ ํจ์๋ก ์ ์ก ๋ ๊ฒ์
๋๋ค ๊ฒฝ์ฐ - ++ ์ปดํ์ผ์ด ๊ฐ ์คํธ๋ฆฝ์ C \\
\
๊น์ง ๋ด๋ ค ๊ฐ๊ณ lua ์ธํฐํ๋ฆฌํฐ์์๋ ๊ฐ์ ์ผ์ด ์ผ์ด๋ฉ๋๋ค.
[ ERROR ]
๋ฉ์์ง์ ๊ฒฝ๋ก๋ LuaGlobal.lua
ํ์ผ ์ด๋ฆ ์์ ์ถ๊ฐ ํ ๊ฒฝ๋ก๊ฐ ./
๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋จ์ ์์ผ๋ฏ๋ก Mudlet ์คํ ํ์ผ๊ณผ ๋์ผํ ๋๋ ํ ๋ฆฌ-๊ทธ๋ฌ๋ * Doze์ ๊ฒฝ์ฐ C ++ ์์ค ์ฝ๋์์ ์ต์ํ .\\
๋๋ .\\\\
๋ก ๋ณ๊ฒฝํด์ผํฉ๋๋ค!
์ด๊ฒ์ ๋ํ ๋ด๊ฐ ์๊ฐํ๋ค๋ ๊ฒ์ ์๋ฏธ QDir::nativeSeparators(
... )
์ฐ๋ฆฌ๊ฐ ๊ฐ๊ณ ์๋ C ++ ์ฝ๋์์ ์์ ๋ฌธ์์ด๋ก ๊ฒฝ๋ก / ํ์ผ ์ด๋ฆ์ ์์ฑํ๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ์ผ์ํ์ง ์๋ ์ ์ ๋ฉ์๋ Lua ์ธํฐํ๋ฆฌํฐ์ ๋ฌธ์์ด๋ก ๊ณต๊ธ๋ฉ๋๋ค.
๋ด๊ฐ ๋น์ ์ ์๊ฒฌ์ ์ดํดํ๋์ง ๋๋ ๊ทธ๋ค์ด ์ค์ ๋ก ๋๋ฅผ ํฅํ ๊ฒ์ธ์ง ํ์คํ์ง ์์ต๋๋ค .. :)
์์ ํ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ์ฒ์๋ถํฐ ๊ตฌ์ฑํ์ง ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
๊ทธ๊ฒ์ ๋ณด๋ ์ฌ๋์๊ฒ๋ ์ผ๋ฐ์ ์ธ ๊ด์ฐฐ์ ๊ฐ๊น์ต๋๋ค. ํนํ Windows ํ๋ซํผ์์ LuaGlobel.lua ํ์ผ์๋ก๋ํ๋ ๋ฐ ์ฌ์ฉ ๋ ๊ฒฝ๋ก๋ฅผ ํ์ธํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ด์ผํฉ๋๋ค. OS๊ฐ "์คํ ํ์ผ๊ณผ ๋์ผํ ๋๋ ํ ๋ฆฌ"์ผ ์ ์์ง๋ง POSIX๊ฐ ์๋ ๊ฒฝ๋ก๋ก ์ธํด ์ ํฉํ์ง ์์ ์ผ๋ถ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์์ฌ๋ฉ๋๋ค.
์ด ๋ฌธ์ ์ ์์ธ์ด ๋ฌด์์ธ์ง ์ดํด๋ณด๋ฉด ๋ค์๊ณผ
void TLuaInterpreter::loadGlobal()
{
#if defined(Q_OS_MACOS)
// Load relatively to MacOS inside Resources when we're in a .app bundle,
// as mudlet-lua always gets copied in by the build script into the bundle
QString path = QCoreApplication::applicationDirPath() + "/../Resources/mudlet-lua/lua/LuaGlobal.lua";
#else
// Additional "../src/" allows location of lua code when object code is in a
// directory alongside src directory as occurs using Qt Creator "Shadow Builds"
QString path = "../src/mudlet-lua/lua/LuaGlobal.lua"; // <== A
#endif
int error = luaL_dofile(pGlobalLua, path.toUtf8().constData());
if (error != 0) {
// For the installer we do not go down a level to search for this. So
// we check again for the user case of a windows install.
// overload previous behaviour to check by absolute path as well
// TODO this sould be cleaned up and refactored to just use an array and a for loop
path = QCoreApplication::applicationDirPath() + "/mudlet-lua/lua/LuaGlobal.lua"; // <== B
if (!QFileInfo::exists(path)) {
path = "mudlet-lua/lua/LuaGlobal.lua"; // <== C
}
error = luaL_dofile(pGlobalLua, path.toUtf8().constData());
if (error == 0) {
mpHost->postMessage("[ OK ] - Mudlet-lua API & Geyser Layout manager loaded.");
return;
}
} else {
mpHost->postMessage("[ OK ] - Mudlet-lua API & Geyser Layout manager loaded.");
return;
}
// Finally try loading from LUA_DEFAULT_PATH
path = LUA_DEFAULT_PATH "/LuaGlobal.lua"; // <== D
error = luaL_dofile(pGlobalLua, path.toUtf8().constData());
if (error != 0) {
string e = "no error message available from Lua";
if (lua_isstring(pGlobalLua, -1)) {
e = "[ ERROR ] - LuaGlobal.lua compile error - please report!\n"
"Error from Lua: ";
e += lua_tostring(pGlobalLua, -1);
}
mpHost->postMessage(e.c_str());
} else {
mpHost->postMessage("[ OK ] - Mudlet-lua API & Geyser Layout manager loaded.");
return;
}
}
์๋ฅผ ๋ค์ด A๋ "..\\\\src\\\\mudlet-lua\\\\lua\\\\LuaGlobal.lua"
ํ์ง๋ง ๋ค๋ฅธ ๊ฒ๋ค์ /
์์ \\\\
๋ก ๋ฐํ์ ๊ต์ฒด๊ฐ ํ์ํฉ๋๋ค. ๋ฆฌํฐ๋ด ๋ฌธ์์ด๊ณผ ํฌํจ ๋ ๋ณ์ ๋ชจ๋. ํญ๋ชฉ ๋งจ ์์์๋ ์๋ ์ค๋ฅ๋ Windows์์ ์ฌ์ฉํ ๋ LUA_DEFAULT_PATH
๊ฐ ๋น์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค!
์ด ํ๋ฉด์ ๋๋ฒ๊น
๊ฒฝ์ฐ ๊ธฐ์ต [ ERROR ]
๋ฉ์์ง ๊ฒ์ ๋ด๊ฐ ์๊ฐํ๋ ๋ชจ๋๋ฅผ ๊ฑฐ์น ๊ฒฝ๋ก ์ฌํ \\
์ \
ํด์ escapings์ ์ง์ง, ์ ์ ํ ๊ฐ์์ผํฉ๋๋ค ํ๋ฉด์์ Windows ๊ฒฝ๋ก-์ ๊ณต๋ ๊ฒฝ์ฐ \LuaGobal.lua
-๋ํ ์๋ชป๋ ๊ฒ์ผ ์ ์์ผ๋ฉฐ .\LuaGobal.lua
์ด์ด์ผํฉ๋๋ค. ๋ฐ๋ผ์ LUA_DEFAULT_PATH
๋ .\LuaGobal.lua
์ด์ด์ผํฉ๋๋ค .\\\\
๋์ ?
Windows์ Lua๋ /๋ฅผ ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ์๋ก ์ ์ฒ๋ฆฌํฉ๋๋ค.
๊ทธ๊ฒ์ ๋ด ๋ค์ ์ ํ๋ ๊ฒฝํ์ด ์๋๋๋ค .IIRC์๋ ๋ฌด์๋ณด๋ค๋ ํจํค์ง ์ด๋ฆ์ ์์ผ๋ ์นด๋ ๋ฌธ์์ ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ ๊ธฐํธ์ ๋ํ ์ค์ ์์ ์ปดํ์ผ ๋ 4 ๋ฌธ์ ๋ฐฐ์ด์ ํฌํจํ๋ ๊ตฌ์ฑ ์ค์ ์ด lua ํญ๋ชฉ ์ด๋๊ฐ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๊ธฐ์ต ๋๋ฌธ์ ๋ด๊ฐ ๊ณ ์ณ ๋ (๋ด๋ถ์) LuaGlobal.lua ์๋์ฐ์ ์ฒ๋ฆฌ ๋ * nix์์ ์คํฌ๋ฆฝํธ ํ์ผ ๊ฒฝ๋ก์์ ๋๋์ด์ ํ๋ ๊ฐ์ C ๋ฐฐ์ด ์ธ๋ฑ์ค์ ์๊ฐ์ ์ํ ์ฌ์ฉํ๋ ๊ณผ๊ฑฐ์ config
char
array for '\\'
๋๋ '/'
-๋์ค์ ๋ ๋์ ์๋ฃจ์
์ ์ฐพ์๋ค ๊ณ ์๊ฐํฉ๋๋ค.
์, ํ-์- package.config
๋ณ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๋ฐ๋ก Lua ๋น๊ณต์ FAQ์ ๋ด์ฉ์
๋๋ค .
1.40 Windows์ Unix ๊ฐ์ ํธํ์ฑ ๋ฌธ์ ?
์ฌ๊ธฐ์ 'Unix'๋ Linux, Mac OS X, Solaris ๋ฑ๊ณผ ๊ฐ์ POSIX์ ์ ์ฌํ ์ด์ ์ฒด์ ๋ฅผ ์๋ฏธํฉ๋๋ค.
package.config
๋ ์ฒซ ๋ฒ์งธ '๋ฌธ์'๊ฐ ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ ๊ธฐํธ ์ธ ๋ฌธ์์ด์ ๋๋ค. ๋ฐ๋ผ์package.config:sub(1,1)
๋ ์ฌ๋์ ๋๋ ๋ฐฑ ์ฌ๋์์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฒฝ๋ก๋ฅผ ๋ง๋ค ๋ ์ด๊ฒ์ ์ฌ์ฉํ์ญ์์ค.Windows์ Unix ๋น๋์ ํฐ ์ฐจ์ด์ ์ ๊ธฐ๋ณธ package.path๋ Windows ์คํ ํ์ผ์ ์์น๋ฅผ โโ๊ธฐ๋ฐ์ผ๋กํ๋ ๋ฐ๋ฉด Unix์์๋
/usr/local/share/lua/5.1
๊ธฐ๋ฐ์ผ๋กํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ Windows์์ Lua์ ๋ก์ปฌ ์ฌ์ฉ์ ์ค์น๋ฅผ ์ํํ๋ ๊ฒ์ด ๋ ์ฝ์ง๋ง Lua๋ ํ๊ฒฝ ๋ณ์LUA_PATH
๋ฐLUA_CPATH
์กด์คํฉ๋๋ค.Lua๋ ๋๋ถ๋ถ์ ์คํฌ๋ฆฝํ ์ธ์ด๋ณด๋ค ์์คํ ์ C ๋ฐํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ ์ง์ ์ ์ผ๋ก ์์กดํ๋ฏ๋ก ํ๋ซํผ์ ์ฐจ์ด์ ์ ์ดํดํด์ผํฉ๋๋ค. Windows ๋ฐ์ด๋๋ฆฌ I / O์์ ํธํ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ
io.open
์ ํจ๊ป"rb"
์ง์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.os.tmpname
๋ Windows์์ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ฐํํ์ง ์์ผ๋ฏ๋ก์ฃผ์ํ์ญ์์ค (TMP
ํ๊ฒฝ ๋ณ์์ ๊ฐ์ ๋จผ์ ๋ฐฑ ์ฌ๋์์ ํจ๊ป ์ ๋์ฌ).os.clock
๋ ๋งค์ฐ ๊ตฌํ๋ฉ๋๋ค. Windows์์๋ ๋ค๋ฅด๊ฒ.๋ง์ฐฌ๊ฐ์ง๋ก
os.time
๋ ํธํ๋์ง ์๋ ํ์ ์ง์ ์๋ฅผ ์ ๋ฌํ๋ฉด ์ค์ ๋ก Lua๋ฅผ ์ถฉ๋์ํฌ ์ ์์ต๋๋ค. (์ด๋ ๋ ์ด์ ์จ ์ ์ฑ ๊ฒ์ฌ๋ฅผ ๋จผ์ ์ํํ๋ Lua 5.2์์ ๋ฌธ์ ๊ฐ๋์ง ์์ต๋๋ค.)Windows GUI ํ์ ์์คํ ์ ๊ฒฝ์ฐ
os.execute
๋ ์ง์ฆ์ ๋ผ ์ ์์ผ๋ฉฐio.popen
๋ ์๋ํ์ง ์์ต๋๋ค.์ด ๊ฒฝ์ฐ ํฌ๋ก์ค ํ๋ซํผ ํ์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
'์ผ๋ฐ์ ์ธ ๊ท์น'-๋๋ ํฐ๋ฆฌ ๊ตฌ๋ถ์๋ก /
๊ฐ Lua์ Windows์์ ์ ๋๋ก ์๋ํ๋ค๋ ์ฌ์ค์ ๋ฐํ์ง ์์ต๋๋ค.
๊ทธ์ ์๋ํ์ง ์๋ ์ ๋ฅผ ํฌํจํ ์ผ๋ถ ์ฌ๋๋ค์๊ฒ๋ ์ ์ ์ธ์ฉ ๋ ๋ ์ํผ์ ๋ฐ๋ผ ์ค๋น๋ ๋ฃจ์ ์ค์น๊ฐ ์์ ์๋ ์์ต๋๋ค (๋๋ Cygwin๋ ์ค์น๋์ด์์ ๊ฒ์ ๋๋ค).
๋ฃจ์ ์๋ธ ์์คํ
(๋๋ ํจํค์ง ๋ถ๋ถ)์ด ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ํน์ ํผ๋ ์ค๋ฝ์ต๋๊น? ์ด๋ ์ชฝ์ด๋ ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค (๋๋ '
for RISCOS ๋ถ๋ช
ํ!), ๋ ๋ค ์์ฉ ํ Windows cmd ๋๋ powerline ์ ๋๋ ๋ ๋ค ์ฒ๋ฆฌ ํ Qt C ++ ์ฝ์ด?
Windows ํ๋ซํผ์์ ์ปดํ์ผ ๋ lua ์ค์น๋ฅผ ์ํด ์๋ํด์ผํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ํผ๋ ์ค๋ฝ์ต๋๋ค. msys๊ฐ POSIX-ish์ด์ง๋ง mingw๋ Windowish์ผ๊น์?
์๋์, ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ LuaGlobal.lua์์ /๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ํ์์ Windows์ ๋ง์ ์ฌ๋๋ค์ด ์๋ํฉ๋๋ค.
์ฌ๊ธฐ์ ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
๋ฐ๋ผ์ ์๋ง๋ Qt์ mingw์์๋ lua ์ธํฐํ๋ฆฌํฐ๊ฐ Windows ์ฉ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์๊ณ Mudlet ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ฐ๊ฒฐ๋ ๋์ผํ liblua๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, luarocks ๋ lua 5.1 ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.์ด ์ธํฐํ๋ฆฌํฐ๋ ๋ค๋ฅธ ๊ฒ์ ์ฐพ์ ์์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์์ง๋ง ๋์ผํ ํ ํฐ์ผ๋ก ~ it ~ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ ๋์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๐ก ์, ๊ถ๊ธํฉ๋๋ค, @Kebap ๋น์ ์ด ์ค๋ฅ๋ฅผ package.config
์ ๊ฐ์ ์ป์ผ๋ ค๊ณ ํ๋ฉด ๋ฌด์์ ์ป์ต๋๊น? ์๋ฅผ ๋ค์ด, ํ์ฌ ์คํ์ค์ธ ์์คํ
์์ ๋ช
๋ น ์ค์์ :
[stephen<strong i="11">@ripley</strong> ~]$ lua51
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print(package.config)
/
;
?
!
-
> ^D
[stephen<strong i="12">@ripley</strong> ~]$
LuaGlobal.lua
ํ์ผ๊ณผ ๊ฐ์ด ํจํค์ง๋ฅผ๋ก๋ ํ ๋ ์ฌ์ฉ๋๋ ํ์ฌ ๋๋ ํฐ๋ฆฌ ๊ตฌ๋ถ ๊ธฐํธ ์ธ ์ฒซ ๋ฒ์งธ ๊ฐ /
์ ์ํ์ญ์์ค! ๋ฌผ๋ก ์ธ๋ถ lua ์คํฌ๋ฆฝํธ๊ฐ ์คํ / ์ฌ์ฉ ๊ฐ๋ฅํ์ง ์์ผ๋ฉด Mudlet์ "๋ช
๋ น ์ค"์์ ํญ๋ชฉ์ ์คํํ ์ ์๋์ง ๊ธฐ์ตํ ์ ์์ต๋๋ค. ๋์ค์ '์ ์๊ธฐ ๋ฉํฑ ์ปดํจํฐ๋ฅผ ์ผ๊ณ ๊ทธ ์ปดํจํฐ์์ ๋ฌด์์ ์ป๋ ์ง ํ์ธํ์ญ์์ค ...
๋ฌผ๋ก ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
์ฌ๋์๊ฐ์๋ ๊ณณ์ ๋ฐฑ ์ฌ๋์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ๊ณผ ์ฅ์๋ฅผ ์ฌ์ฉํ์ ๊ฒ ๊ฐ์์ ๋จธ๋ค ๋ ์์ ์๋ ํด๋ด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค์ ..?
์ฌ์ฉ์ ์ด๋ฆ์ด ์ค์ ๋ก ๋ฌธ์ ์ธ์ง ํ์ธํ๊ธฐ ์ํด ํน์ ๋ฌธ์๋ฅผ ํฌํจํ๊ฑฐ๋ ํฌํจํ์ง ์๋ ์ ์ฌ์ฉ์๋ฅผ ํ๋ ๋ช ๋ง๋ค ์ ์์ต๋๋ค. ๋์์ด๋์๋ค๊ณ ์๊ฐํ์ญ๋๊น?
์, ์๋ํ์ญ์์ค
2018 ๋ 4 ์ 25 ์ผ ์์์ผ ์คํ 6:48 Kebap, [email protected] ์์ฑ :
ํน์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๊ณ ์ ์ฌ์ฉ์๋ฅผ ํ๋ ๋ช ๋ง๋ค ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ด๋ฆ์ด ์ค์ ๋ก ๋ฌธ์ ์ธ์ง ํ์ธํ๊ธฐ ์ํด์์ ๋๋ค. ๋น์ ์ ์๊ฐํฉ๋๊น
๋์์ด ๋์๋์?โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์ ๋๋ค.์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/Mudlet/Mudlet/issues/1616#issuecomment-384355980 ๋๋ ์์๊ฑฐ
์ค
https://github.com/notifications/unsubscribe-auth/AAGxjN9JHbiPCOgUf3u1u8jVg0KjDiSbks5tsKj3gaJpZM4TZAbQ
.
๋ด๊ฐ ๋ณผ ์์๋ ํ, ์ฝ๋๋ LuaGlobal.lua
ํ์ผ์ ๋ํด ์ ์ ๋ ๋ชจ๋ ์์น๋ฅผ ์๋ํ๊ณ ๋ง์นจ๋ด ์๋ํ๋ ์์น์ ๋๋ฌํฉ๋๋ค.
LUA_DEFAULT_PATH "/LuaGlobal.lua"
๊ทธ๋ฌ๋ ๊ฒฐ๊ณผ ์ค๋ฅ ๋ฉ์์ง์์ LUA_DEFAULT_PATH๋ ๋น ๋ฌธ์์ด์ด๋ฏ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
/LuaGlobal.lua
'/'๊ฐ ์๋ ๊ฐ๋ฅํ ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ ๊ธฐํธ๋ผ๊ณ ๊ฐ์ ํ๋ฉด (๊ทธ๋ฆฌ๊ณ ๋๋ ์ฌ์ ํ ํ์ ํ์ง ๋ชปํ์ง๋ง ๊ทธ๊ฒ์ ๋ด ๋ฌธ์ ์
๋๋ค) '/'๊ฐ ์ฌ์ฉ๋๋ ๊ณณ์์ ์คํ ๊ฐ๋ฅํ ๋๋ ํ ๋ฆฌ ๊ตฌ๋ถ ๊ธฐํธ๋ผ๋ ๊ฒ์ ํ์ผ ์์คํ
์ ๋ฃจํธ ์์ ํ์ผ์ ์ฐพ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค-POSIX์ ๊ฒฝ์ฐ ๋ง ๊ทธ๋๋ก ๋ฃจํธ์ด๊ณ Windows์์๋ ํ์ฌ ํ์ฑ ๋๋ผ์ด๋ธ์ ๋ฃจํธ์
๋๋ค. C:\
(๋๋ C:/
: wink :)-์ ๋ง๋ก ํ์ฌ ์์
๋๋ ํ ๋ฆฌ ๊ฐ๋๊ธฐ๋ฅผ ์ํ๋ค๋ฉด LUA_DEFAULT_PATH
๋ ๋จ์ผ .
๋ฌธ์ ์ฌ์ผํ๋ฉฐ ์์ ํ ๋น์ด ์์ง ์์์ผ ํฉ๋๋ค.์ด ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๋ ๋ค์ ์ค ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
... cannot open ./LuaGlobal.lua ...
๋๋ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
... cannot open C:/Users/Eingeschrรคnkt/AppData/Local/Mudlet/LuaGlobal.lua ...
์๋ง๋? ๐ฎ
lua ์ธํฐํ๋ฆฌํฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ std::string
์บก์ฒ๋๊ณ std::string::c_str()
๋ณํ์ ํตํด cTelnet::postMessage(
... )
์ ์ก๋ฉ๋๋ค. const char *
ํ์ง๋ง postMessage
๋ QString
์์ํ๋ฏ๋ก QString::fromUtf8()
๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ QString :: QString (const char str) ์์ฑ์ ๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. ๋น ASCII ๋ฌธ์ * ์์๋์ง ์์ ์ํ๋ก ํต๊ณผํด์ผํฉ๋๋ค ... ๐
\
lua print(package.config)
์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ Mudlet ํ๋กํ ๋ช ๋ น ์ค์์.
์ด๊ฒ์ ์ฝ๊ฐ์ ์ถ์ธก์ด์ง๋ง ๋ฐํ์ ์์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํ ํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
lua package.config = "/;?!_"
๊ตฌ๋ถ ๊ธฐํธ๋ฅผ /
๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด-์์ ;
์์ ๋ถํ ํ์ง ์๋๋ก ๊ธฐ๋ณธ ์ค์ ์์ "๋ช
๋ น ๊ตฌ๋ถ ๊ธฐํธ"์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค. LuaGlobal.lua
ํ์ผ์ ์๋์ผ๋ก "์คํ"ํ์๊ฒ ์ต๋๊น? ์ค, ๊ทธ๋๋ ์๋ํ์ง ์์ผ๋ฉด [ ERROR ]
์ ํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. \
ํน์ ๋ฌธ์๊ฐ์๋ ์ฌ์ฉ์ ์ด๋ฆ์ด์๋ Win 8.1์ Mudlet 3.8.1์์ ํ์ธ ๋ ์ค๋ฅ : รค.
ํน์ ๋ฌธ์์์ด ์ฌ์ฉ์ ์ด๋ฆ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
lua print(package.config)
๊ฒฐ๊ณผ๊ฐ ํ์๋์ง ์์
lua print('test')
๋ ๊ฒฐ๊ณผ๊ฐ ํ์๋์ง ์์
lua
๋ณ์นญ์ ์ฌ์ฉํ ์ ์์ง๋ง print
๋ ์ฌ์ฉํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
lua echo('test')
์์๋๋ก ์๋ ํจ
lua package.config = "/;?!_"
์ค๋ฅ ๋ก๊ทธ ๋ด์ฉ : ERROR:[string "Alias: run lua code"]:4: [string "package.config = "/"]:1: unfinished string near '<eof>'
๋ช ๋ น ๊ตฌ๋ถ์๊ฐ์์ ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋ค๋ฅธ ๊ฒ์
lua package.config = "/;?!_"
์์์ด? ๊ฒฐ๊ณผ๊ฐ ๋ณด์ด์ง ์์
lua run("./LuaGlobal.lua")
์ค๋ฅ ๋ก๊ทธ ๋ด์ฉ : ERROR:[string "return run("./LuaGlobal.lua")"]:1: attempt to call global 'run' (a nil value)
include
ํ
์คํธ-๋์ผํ ์ค๋ฅ.
lua require("./LuaGlobal.lua")
-ํฅ๋ฏธ๋ก์ด ์ค๋ฅ :
ERROR:[string "return require("./LuaGlobal.lua")"]:1: module './LuaGlobal.lua' not found:
no field package.preload['./LuaGlobal.lua']
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua\init.lua'
no file '.\\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua\init.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua\init.lua'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua'
no file '.\\/LuaGlobal\lua.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\'
no file '.\.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll'
ํ์คํ lua require("/LuaGlobal.lua")
์ค๋ฅ ๋ก๊ทธ ๋ด์ฉ :
ERROR:[string "return require("/LuaGlobal.lua")"]:1: module '/LuaGlobal.lua' not found:
no field package.preload['/LuaGlobal.lua']
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\/LuaGlobal\lua\init.lua'
no file '.\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\/LuaGlobal\lua\init.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\/LuaGlobal\lua.lua'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\/LuaGlobal\lua\init.lua'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\/LuaGlobal\lua'
no file '.\/LuaGlobal\lua.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\/LuaGlobal\lua.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll'
no file 'C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\/LuaGlobal'
no file '.\/LuaGlobal.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\/LuaGlobal.dll'
no file 'C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll'
์๋ํ์ง ์๋ print
์ ๋ํด ์ด์ํฉ๋๋ค-๋ฃจ์๊ฐ ๋ด์ฅ๋์ด ์์ง๋ง-ํ์ง๋ง :
lua echo(package.config)
์ ์๋ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์์
์์ ์ ์ถ๋ ฅ์ ๋ณด๋ฉด ์ค๋ฅ ์ถ๋ ฅ์ด LuaGlobal.lua
ํ์ผ์๋ก๋ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ค ํ์ผ ์ด๋ฆ๊ณผ ๊ฒฝ๋ก๊ฐ ์๋๋๋์ง ๋ณผ ์ ์์ต๋๋ค.
C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua.lua
C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua\init.lua
.\\/LuaGlobal\lua.lua
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua.lua
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua\init.lua
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.lua
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua\init.lua
C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua
.\\/LuaGlobal\lua.dll
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.dll
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll
C:\Users\Eingeschrรคnkt\.config\mudlet\profiles\new profile name\
.\.dll
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\.dll
C:\Users\Eingeschr๏ฟฝnkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll
์์ฆ ํ์ผ์ ์์น๊ฐ ํ์คํ์ง ์์ 3.8.1 ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ค์น ํ ๊ฒฐ๊ณผ ์ฌ์ฉ ๋ ๊ฒฝ๋ก๊ฐ ๋ค์๊ณผ ๊ฐ์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
C : \ Users \ Stephen \ AppDataLocal \ Mudlet \ app-3.8.1 \ mudlet-lualua
Windows Installer ๋ฒ์ ์์๋ package.config์ ๋ํด ๋ค์์ด ์์ต๋๋ค.
lua print(package.config)
\
;
?
!
-
๋ฐ๋ผ์ ํจํค์ง ํธ๋ค๋ฌ๊ฐ IMO๋ฅผ ์๋ํ๋ ค๋ฉด ๊ฒฝ๋ก๊ฐ \
๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ค๋ฅธ ๊ฒ์ ์ป๋ ์ด์ ๋ ์์ง ๋ช
ํํ์ง ์์ต๋๋ค.
ํธ์ง ๋จ : '์ด ์๋`๋ก ๊ฒฝ๋ก ๋ชฉ๋ก์ ์ธ์ฉํฉ๋๋ค.
์ผ๋ถ ๊ฒฝ๋ก๊ฐ mojibake์ด๊ณ ๋ค๋ฅธ ๊ฒฝ๋ก๊ฐ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ํ๋ ์ด์ ๋ ๋ค๋ฅธ ์์ค์์ ์๊ณ ์ผ๋ถ ๊ฒฝ๋ก๋ ์์ง I18n์ ์ ๋๋ก ์ํ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. Mudlet 4.0์ผ๋ก ์ถ์ ํ์ฌ ์์ ํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ํต์ ํ ์์๋ ๊ฒ์ด ์๋ ์๋ ์์ต๋๋ค. ๊ฐ๋ณ ์ค๋ฅ ๋ฉ์์ง๋ ๋ชจ๋ ์์ฑ ๋ ๊ฒ๊ณผ ๋์ผํ ํ๋ก์ธ์ค๋ฅผ ํต๊ณผํ๋ฏ๋ก ํ์ ์ฝ๋ ๋ ๊ธ๊ผด์ด ๋ ์ ์์ต๋๋ค.
์์๋๋ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํด (๊ฐ๋ฐ์๋ก์ ํด๋น PC์ ๋ ์ด์์ ์ฌ๋ณธ์ด ์์) ํ์ผ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค.
๋ํ ๋น ASCII (์๋ง๋ Latin1 / ISO 885901๋ ์๋) ๋ฌธ์๋ก ์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค์์ผ๋ฉฐ ํด๋น ์ฌ์ฉ์์ ๋ํด ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ํ์ธํ ์ ์์ต๋๋ค. Mudlet์ ๋ค์ ์์น์์ ํ์ผ์ ๋ณผ ์ ์์ต๋๋ค.
C:\Users\ลศศ
ฦฅฤฅฤฦ\AppData\Local\Mudlet\app-3.8.1\mudlet-lua\lua\LuaGlobal.lua
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ํ ์ ์์ต๋๋ค
C:\Users\stephen\AppData\Local\Mudlet\app-3.8.1\mudlet-lua\lua\LuaGlobal.lua
:ํ๋๋:
Stack Exchange์ ๋ํ ์ด Q & A๋ ์ ๋งํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ MIT ๋ผ์ด์ ์ค luawinfile Windows (MSVC๊ฐ ์๋ mingw์์๋ง ์ปดํ์ผ) ํ์ผ ์ด๋ฆ ๋ณํ๊ธฐ (UTF-8 ํ์ผ ์ด๋ฆ์ Windows ํ์ผ ์ฒ๋ฆฌ API์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ UTF-16์ผ๋ก /์์ ๋ณํ)๊ฐ ์ฝ๊ฐ ๋ ์ข์ ๋ณด์ ๋๋ค. ๋์ฒด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. UTF-8 ํ์ผ ๋ฐ ๊ฒฝ๋ก ์ด๋ฆ์ ์ฌ์ฉํ ์์๋ LFS ๋ชจ๋์ ๊ฒฝ์ฐ.
์ ์ฐพ์์ต๋๋ค. ๊ทธ๋ฅ ๋ฒ๋ฆฌ๊ธฐ ์ํด ์ด๋ฏธ Mudlet์ https://github.com/starwing/luautf8 ์ด ์์ต๋๋ค. ๋์์ด ๋ ๋งํ ๊ฒ์ด ์์ต๋๊น?
SlySven, 15 ๊ฐ์ ๋๋ ํ ๋ฆฌ ์ด๋ฆ ๋ชฉ๋ก์ด ์๋ชป๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด 13์ ..dll
์๋๋ผ .\.dll
์ด์ด์ผํฉ๋๋ค.
์, ๊ทธ๊ฒ์ด ๋งํฌ ์ ์์คํ ์ ๋ฐฉํดํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์์ ์ผ๋ถ ์ปจํ ์คํธ์์ ๋ฐฑ ์ฌ๋์๋ ํ์ํ ๋ค์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํฉ๋๋ค. ์๋ฅผ ๋ค์ด์ด "\ <"์ ๊ฐ์ ์ผ๋ฐ ํ ์คํธ์ ๋ฏธ๋ง ๊ธฐํธ๋ฅผ ํ์ํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๊ฑฐ๊ธฐ์ ๋ฐฑ ์ฌ๋์ ... ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ฐ์ดํ๋ฅผ ์์ ํ๊ธฐ ์ํด ํธ์ง ๋ ์ฝ๋ ๋ฐ์ดํ ๋์ ๋จ์ผ ์ผ๋ฐ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
luautf8
๋ UTF-8 ๋ฌธ์์ด ์ฒ๋ฆฌ์ ๊ดํ ๊ฒ์
๋๋ค. luainfile
๋ ํนํ Windows ํ์ผ ์ฒ๋ฆฌ (UTF-16 ๋ฌธ์์ด์์๋ง ์๋ ํจ) ์์ ์ธํฐํ์ด์ค์ ๊ดํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. C ๋๋ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ C ++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ -Windows์์๋ง lfs
๋ฅผ ๊ฐ์ธ๊ฑฐ๋ ๊ต์ฒดํด์ผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค (Cygwin์ ์๋์ง๋ง).
ํ ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ฌ์ฉํ์ง ์๋ lfs
๋ก๋ LuaGlobal.lua
๋ฐฉ๋ฒ ๋๋ฌธ์, luainfile
๋ฌธ์ ๋ฅผ ํด๊ฒฐ?
lfs
์ ๋์ฒดํ์ด ์๋๋๋ค. ๋ํ dofile
๋ฐ loadfile
์์ต๋๋ค. luaL_dofile
์ ๋ํ ํธ์ถ์ dofile
๋ํ lua ํธ์ถ๋ก ๋์ฒดํด์ผ ํ ๊ฒ์
๋๋ค.
์ถ๊ฐ ํ ํธ์ง : lua 5.3์ ๋ํ luainfile
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋งํฌ (๊ธฐ๋ณธ๊ฐ) ... ์ด๊ฒ์ด ํ๋ ์ข
์์ฑ์ธ์ง ์ฌ๋ถ๋ ํ์คํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ ์์ ์ luaL_dofile
ํจ์๋ฅผ ์์ฑํ๋ฉด Windows์ ํน์ ์ธ์ฝ๋ฉ์ผ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ ์ด๋ป๊ฒ ์ถ์งํ ์ ์์ต๋๊น?
5.1 ํธํ์ฑ์ ๋ํด ๋ฌป๋ luawinfile ์ ์ฅ์์์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ง๋ง ์ค์ ๋ก lua 5.1์์ ์ ๊ณตํ์ง ์๋ ์ผ๋ถ 5.3 ์ธ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ๊ณตํ๋ ค๋ ๋ณ๋์ ๊ณต์ 5.3 ํธํ์ฑ ๋ชจ๋์ด ์์ต๋๋ค. ๋๋ฝ ๋ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ 5.2 ๋ฐ 5.1์ ์์ง๋ง ๋ค๋ฅธ ํฉ๋ณ์ฆ์ด์๋ ๊ฒ์ ์๋๋ฏ๋ก ์๋ฃจ์ ์ด ๋จ์ด์ง์ง ์์ต๋๋ค.
# 229์ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ ์ด๋ป๊ฒ ์ถ์งํ ์ ์์ต๋๊น?
MIT ๋ผ์ด์ ์ค https://github.com/cloudwu/luawinfile (์ฝ๋์ ์ฝ 884 ์ค {808 soc}์ ๋จ์ผ C ํ์ผ)์ 5.3์์ 5.1๋ก ๋ฐฑ ํฌํธํ์ฌ ์ด์ ๋ฒ์ ์์๋ ์ผ๋ถ ๊ธฐ๋ฅ์ ์์ฉํด์ผํฉ๋๋ค. Mudlet์ด ์ฌ์ฉํ๋ ๋ฃจ์ ๋ฒ์ ์ ๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ํ์ฌ ๋๋ผ๋ ๊ฒ๋ณด๋ค lua-C ์ฝ๋ฉ์ ๋ ์ ์ดํดํ๋ ์ฌ๋์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋จธ์ง ์ฝ๋ ๊ธฐ๋ฐ์ ๋ํด ๋๋ฌด ๊ฑฑ์ ํ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ๊ณ ํ ์คํธ ํ ์์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ค์ ๋ก Windows ๊ฐ๋ฐ ํ๋ซํผ์์๋ง ํ ์คํธ ํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ฌธ์ ๋ ์ฌ๋๋ค์ด ์์ด๊ฐ ์๋ ์ฌ์ฉ์ ์ด๋ฆ์ผ๋ก ์ฐฝ์ ํ๋กํ์ ์ ์ฅํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ก์ด ๊ธฐ๋ก๋์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ํ ํฐ์ผ์ด ์๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค.
์ซ๋ผ๋ฆฌ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Mudlet์ ๊ตญ์ ์์ ์ ๊ฐ์ ธ ์ค๋ ์ต๊ทผ ์์ ๊ณผ์ ์์ ๋ช ๊ฐ์ง๋ฅผ ๋ฐฐ์ ์ต๋๊น?
์ฌ์ค์ ์๋๋๋ค. luawinfile
์ Lua 5.1๋ก ๋ค์ ํฌํ
ํ๋ ๊ฒ์ด ์ต์ ์ ํฌ๋ง์ ์ ๊ณตํ๋ค๊ณ ์๊ฐํ์ง๋ง C/C++
+ lua
์ ๋ํด ์ถฉ๋ถํ ์ดํดํ์ง ๋ชปํ์ต๋๋ค (์์ง?) ์๊ฐ io
luawinfile ์ผ๋ถ (๋ชจ๋ , ๋๋ ๋ชฐ๋ผ?) ์๋์ฐ ํน์ ๋์ฒด์ ๊ธฐ๋ฅ์ ๋์ฒด ๋ฐฉ๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ฌ๋๋ค์ ๋ด ๊ธฐ๋ณธ Windows ๊ฐ๋ฐ ํ๋ซํผ์ด ๊ฐ์ฅ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค (64 ๋นํธ ํ๋ก์ธ์๊ฐ ์ฅ์ฐฉ๋์ด ์์ง๋ง 32 ๋นํธ ๋ฒ์ ์ ์คํํ๋ Windows 7 ๋ ธํธ๋ถ). ๋ถํ ๋จธ์ ์ด ๋ช ๋ฌ ๋์ ํด๋น OS๋ฅผ ์คํํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ช ์๊ฐ ๋์ "Windows ์ ๋ฐ์ดํธ ์ค ... ์ ์์ ๋์ง ๋ง์ญ์์ค"ํ๋ฉด์ ๋ฐ๋ผ๋ณด๋ฉฐ ๊ทธ๋ค์ง ๋๊ธฐ ๊ฐ ๋ถ์ฌ๋์ง ์์์ต๋๋ค. ATM!
์ด์ Qt ์จ๋ผ์ธ ์ค์น ํ๋ก๊ทธ๋จ์ด ๋ง์นจ๋ด 64 ๋นํธ Mingw64 Windows ์ค์น ๋ง ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ ํ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ์ 32 ๋นํธ ์ ์ฉ Mingw ์ค์น์ ๋น๊ตํ๋ฉด ๋ช ์๊ฐ์ ๋ฒ๋ฆด ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ..
์ข์ ๋ณด์ฌ...
์ด๊ฒ์ ์ฐ์ด์ ๋ง๋ค์ด์ง https://gist.github.com/Egor-Skriptunoff/2458547aa3b9210a8b5f686ac08ecbf0 ๋๋ถ์ ๋๋ค.
Mudlet 3.22์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.