Mudlet: ファイルパスにASCII以外のWindowsユーザーはLuaGlobalをロードできません

作成日 2018年04月17日  ·  38コメント  ·  ソース: Mudlet/Mudlet

問題の簡単な要約/要求された機能の説明:

  1. マドレットが再インストールされ、新しいプロファイルで開始されました。
  2. エラーメッセージが表示されます。以下を参照してください。
  3. マッドレットには、間欠泉などのコア機能がありません。

ユーザー/ディレクトリ名の特殊文字は、マドレットの機能に影響を与えたり妨げたりしてはなりません。
これは、Mudletのやや最近のアップデートで行われたようです。
また、単なる間欠泉よりもはるかに多くの機能を壊します。

問題を再現する手順/機能を追加する理由:

  1. 私のコンピューター#1で複数回複製できたが、私のコンピューター#2では複製できなかった
  2. フルパスはC:\ Users \Eingeschränkt\ AppDataLocal \ Mudletです-おそらくユーザー名の特殊文字が原因ですか?
  3. @keneanungのコメント:自動アップデーターを実装したときに、インストールディレクトリをC:\Program Files\からユーザープロファイルに変更しましたが、最近その場所で何かを変更したことを思い出せません。 コードは、UTF-8パス名を正しく処理する必要があるかのように_見えます_

エラー出力/機能の期待される結果

[エラー] LuaGlobal.luaコンパイルエラー
Luaからのエラー:/LuaGlobal.luaを開くことができません:そのようなファイルまたはディレクトリはありません
grafik

マドレットのバージョン、オペレーティングシステム、解決/実装方法のアイデアなどの追加情報:

Win7のマドレット3.8.1

Windows bug i18n & l10n medium

全てのコメント38件

Windowsはパス名がおかしいことが知られており、Luaのファイル関数には正しくスラッシュされたパス名を指定する必要があります。 C ++コードでは、C ++ 11の生の文字列リテラルを使用しない場合(そしてQObject::tr( ... ) Qtバグを処理しないように強制される場合があります)単一の/ nixシステムのハードコードされたパス名の/は、lua関数に送信される場合は\\\\二重にエスケープする必要があります-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からDはすべてWindowsで間違っているため、これはすぐに少し危険に思えます。たとえば、Aは"..\\\\src\\\\mudlet-lua\\\\lua\\\\LuaGlobal.lua"である必要がありますが、他のAは/から\\\\実行時置換が必要です。リテラル文字列と含まれている変数の両方。 トピックの上部にある元のエラーは、Windowsで使用した時点でLUA_DEFAULT_PATHが空であるためです。

これをデバッグすると、画面上の[ ERROR ]メッセージが、 \\から\までの両方通過したパスを再現する場合、エスケープが解除されるので、適切で実際のように見えるはずです。画面上のWindowsのパス-だろう\LuaGobal.luaも、おそらく間違っているとされている必要があります-場合与えられたで.\LuaGobal.lua多分-そうLUA_DEFAULT_PATHとなっているべき.\\\\代わりに

ただし、Windows上のLuaは/をディレクトリ区切り文字として処理します。

それは私のやや限られた経験ではありませんでした-IIRCは、特にパッケージ名のワイルドカード文字とディレクトリセパレータのコンパイル済み設定を保持する4文字の配列を含む構成設定をluaのもののどこかにあります。 過去にWindowsと* nixファイルパスの(内部の)LuaGlobal.lua処理を修正したときに、チェックを使用したので、これを思い出します。1つのC配列インデックスでconfig入ると思います。 char '\\'または'/' char配列-後でより良い解決策が見つかったと思いますが。

ああ、ハ-はい- 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_PATHLUA_CPATH尊重します。

Luaは、ほとんどのスクリプト言語よりもシステムのCランタイムライブラリに直接依存しているため、プラットフォームの違いを理解する必要があります。 WindowsバイナリI / Oとの互換性が必要な場合は、 "rb"指定子とio.openます。 os.tmpnameは、Windowsではフルパスを返さないため、注意してください( TMP環境変数の値とバックスラッシュを最初に付けたプレフィックス) os.clockは非常に実装されていますWindowsでは異なります。

同様に、互換性のないフォーマット指定子が渡された場合、 os.timeは実際にLuaをクラッシュさせる可能性があります。 (これは、最初に健全性チェックを行うLua 5.2では問題ではなくなりました。)

Windows GUIサブシステムの場合、 os.executeはイライラする可能性があり、 io.popen単に機能しません。この場合、クロスプラットフォームの拡張ライブラリを利用できます。

「原則として」-これは、ディレクトリセパレータとしての/がLuaのWindowsで正常に機能するという事実に反するものではありません。

それだけです-私を含め、一部の人にとっては機能しませ-通常の引用レシピに従って準備されたluaインストールがない(またはCygwinインストールもある)可能性があります。

私は疑問に思います-万が一、luaサブシステム(またはそのパッケージ部分)のディレクトリセパレータの処理を混乱させていますか?これどちらの方法でも(またはおそらく' RISCOSはどうやら!)、両方を受け入れるWindows cmdまたはpowerlineシェル、または両方を処理するQt C ++コア?

Windowsプラットフォームでコンパイルされたluaインストールで何が機能するのかについて私を混乱させます-ああ、msysはPOSIXっぽいのに、mingwはWindowっぽいのでしょうか?

いいえ、そうではありません。また、LuaGlobal.luaで/を使用すると、現在の状態のWindowsで多くの人が機能するのもそのためです...

selection_112

ここではパスセパレータは問題ではありません。

おそらく、QtのmingwのluaインタープリターはWindows用に正しく構成されており、Mudletアプリケーションがリンクされるのと同じlibluaを使用しています{すべての人にとってそうではないかもしれません}。 たとえば、 luarocksはlua 5.1インタープリターを提供します。そのライブラリーが使用される可能性があります。

💡ああ、私はあなたがの値を取得しようとした場合@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の「コマンドライン」から何かを実行できるかどうか思い出せません。 後で「Doze」ラップトップマシンを起動して、そのマシンで何ができるかを確認します...

確かに試すことができます:
grafik
スラッシュがあったところにバックスラッシュがあるようです

あなたは別の方法と場所を使用したようですので、私がマドレットでこれを試すべきかどうかはわかりません..?

ここでユーザー名が本当に問題であるかどうかを確認するために、特殊文字の有無にかかわらず、新しいユーザーを1つか2つ作成することができます。 役に立ったと思いますか?

はい、お試しください

2018年4月25日水曜日、午後6時48分ケバブ、 notifications @ github.comは次のように書いています。

特殊文字の有無にかかわらず、新しいユーザーを1つか2つ作成できます。
ここでユーザー名が本当に問題であるかどうかを確認するためだけに。 あなたは思いますか
役に立ちましたか?


あなたがコメントしたのであなたはこれを受け取っています。

このメールに直接返信し、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 *が、 postMessageQString期待しているため、 QString::fromUtf8()コンバーターを使用するQString :: QString(const char str)コンストラクターを使用する必要があります。非ASCII文字*損傷なしで通過する必要があります...😌

\

lua print(package.config)

エラーが発生した場合でも、Mudletプロファイルのコマンドラインから。

これは少し推測的ですが、実行時の修正として、次のようなことが可能かどうか疑問に思います。

lua package.config = "/;?!_"

区切り文字を/に変更するには(ただし、設定の「コマンド区切り文字」設定を変更して、上記の;で分割されないようにすることもできます)。次に、できるかどうかを確認します。 LuaGlobal.luaファイルを手動で「実行」しますか? ああ、それが機能しない場合、それは[ ERROR ]タイプのエラーメッセージを提供しません。 \

Win8.1のMudlet3.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組み込みでしたが-しかし:

lua echo(package.config)

同様に機能するはずです。

最初の種類の作業例からの出力を見ると、エラー出力はLuaGlobal.luaファイルを読み込もうとしています-どのファイル名とパスが試行されているかを見てみましょう。

  1. C:\Users\Eingeschränkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua.lua
  2. C:\Users\Eingeschränkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua\init.lua
  3. .\\/LuaGlobal\lua.lua
  4. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua.lua
  5. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\lua\\/LuaGlobal\lua\init.lua
  6. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.lua
  7. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua\init.lua
  8. C:\Users\Eingeschränkt\.config\mudlet\profiles\new profile name\\/LuaGlobal\lua
  9. .\\/LuaGlobal\lua.dll
  10. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\\/LuaGlobal\lua.dll
  11. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\loadall.dll
  12. C:\Users\Eingeschränkt\.config\mudlet\profiles\new profile name\
  13. .\.dll
  14. C:\Users\Eingeschr�nkt\AppData\Local\Mudlet\app-3.8.1\.dll
  15. 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インストーラーのバージョンでは、package.configに次のものがあります。

lua print(package.config)
\
;
?
!
-

したがって、パッケージハンドラーがIMOを機能させるには、パスで\を使用する必要があります。 なぜ異なる人々が異なるものを手に入れているのかはまだ明らかではありません。

編集:パスのリストを「」ではなく「」で引用する

一部のパスが文字化けであり、他のパスがユーザー名を正しく表示する理由は、それらが異なるソースからのものであり、一部はまだI18nに適切に対応していないためである必要があります-それらを追跡し、Mudlet4.0で修正できると便利です-しかしそれらは私たちが制御できるものではないかもしれません。 個々のエラーメッセージはすべて、作成されたものと同じプロセスを通過するため、表示コードやフォントにすることはできないことに注意してください。

期待されるインスタンスを使用していることを確認するために(開発者として、そのPCに複数のコピーがあります)、ファイルの名前を変更して同じ結果を得ました。
luagloballua_fail

また、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

:sob:

Stack Exchangeに関するこのQ&Aは、有望に聞こえません。

ただし、MITライセンスのluawinfile Windows(MSVCではなく必要があるUTF-16との間でUTF-8ファイル名を変換する)は少し見栄えが良く、代替品を提供しますUTF-8ファイル名とパス名を取得できるLFSモジュールの場合。

良い発見。 ただそれを捨てるために、私たちはすでにマドレットに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代わりになるだけではありません。 また、 dofileloadfile代わりになります。 おそらく、 luaL_dofileへの呼び出しをdofileへのlua呼び出しに置き換える必要があります。

編集して追加: luainfileライブラリは(デフォルトで)lua5.3に対してリンクしています...それがハードな依存関係であるかどうかはわかりません。

独自のluaL_dofile関数を記述できるように思えますが、それはWindowsの特別なエンコーディングで機能しますか?

どうすればこれを前進させることができますか?

私は5.1の互換性について尋ねるluawinfileリポジトリで問題を提起しましたが、私は調べました、そしてそれは実際にはlua5.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のバージョン。 これには、私が現在感じているよりもlua-Cコーディングをよく理解している人が必要になると思います。 ただし、実際にはWindows開発プラットフォームでしかテストできないものの、コードベースの残りの部分についてあまり心配することなく、独立して実行およびテストできるもののようです。

もう1つの問題は、英語以外のユーザー名のウィンドウにプロファイルを保存できないことです。履歴は書き込まれません。 そのためのチケットがあるとは思わないでください。

@SlySven
この問題を提起するために、Mudletに国際レターを提出するための最近の修正中に、いくつかのことを学んだでしょうか。

実際には、 luawinfileをLua 5.1にバックポートすることは私たちの最善の希望を提供すると思いますが、 C/C++ + lua (まだ?)十分に把握していません。これを行う私の能力に自信を持たせるためのと思いますio 、Windowsの特定の代替と関数のライブラリとluawinfileはいくつかを置き換える方法を確認(すべて、私は知らないのですか?)。

人々が私の主要なWindows開発プラットフォームが最も適合していないことに気づいたかもしれないので(64ビットプロセッサを搭載しているが32ビットバージョンを実行しているWindows 7ラップトップ)-私のメインPCにも64ビットWindows 7がありますが、そのトリプル-私は見つめて数時間の持っているので、ブートマシンは、「更新のWindowsをオフにしない...」画面を楽しみにして数ヶ月のためにOSという実行されていないと私は、ATMやる気ないことです!

しかし、Qtオンラインインストーラーがついに64ビットのMingw64 Windowsインストールのみを提供するように切り替わったようですが、以前の32ビットのみのMingwインストールと比較して、時間があればそうすることを検討したかもしれません。 ..

格好良い...

Selection_127

これは、今年の初めに作成されたhttps://gist.github.com/Egor-Skriptunoff/2458547aa3b9210a8b5f686ac08ecbf0のおかげです。

マッドレット3.22で利用可能になります

このページは役に立ちましたか?
0 / 5 - 0 評価