2

私はc#とCosmosを使用して小さなオペレーティングシステムを構築しようとしています
.最初は、これはある瞬間から別の瞬間までかなりうまくいき、動作を停止し、次のエラーが発生しました:

NAsm の呼び出し中にエラーが発生しました。
OSBoot.asm Line: 241424 Code: push dword System_Void__System_IO_Stream_Dispose__
OSBoot.asm Line: 242633 Code: push dword System_Void__System_IO_Stream_Dispose__ t OSBoot.asm Line: 247640 Code: push dword System_Void__System_IO_Stream_Dispose__
OSBoot.asm Line: 248618 Code: push dword System_Void__System_Collections_Generic_List_1_Enumerator__Commands_ICommand_ICommandBase_ Dispose _

新しいシステムにcosmosを使用してMicrosoft Visual Studioの新しいインストールをインストールし、最初からやり直しました。最初は機能しましたが、何も変更せずに機能しなくなりました

using System;
using Commands;
using Sys = Cosmos.System;

namespace OS
{
public class Kernel : Sys.Kernel
{
    private Env SysEnv { get; set; }
    private InputHandeler InputHandler { get; set; }


    protected override void BeforeRun()
    {
        Console.WriteLine("Creating Enviriment...");
        SysEnv = new Env();
        InputHandler = new InputHandeler(new CommandLister());
        Console.WriteLine("Enviriment build");
        Console.Clear();
        Console.WriteLine("Os booted successfully.");
    }

    protected override void Run()
    {
        Console.Write(SysEnv.ConsolCommandPrefix);
        var input = Console.ReadLine();
        try
        {
            InputHandler.ExecuteInput(input);
        } catch(Exception)
        {
            //TODO good exeption and the use of it
        }
    }
}
}

環境クラス

namespace OS
{
public class Env
{
    public string CurrentUser { get; set; }
    public string CurrnetDir { get; set; }
    private string prefix;
    public string ConsolCommandPrefix
    {
        get { return CurrentUser + "@" + CurrnetDir + prefix; }
        set { prefix = value; }
    }

    public Env()
    {
        ConsolCommandPrefix = "> ";
        CurrentUser = "Admin";
        CurrnetDir = "/";
    }
}
}

CommandLister クラス

using System;
using System.Collections.Generic;
using Commands.Command;
using Commands.Command.SystemCommands;
using Commands.ICommand;

namespace Commands
{
public class CommandLister
{
    private List<ICommandBase> KnownCommands { get; set; }
    private Unkown UnkownCommand { get; set; }

    public CommandLister()
    {
        KnownCommands = new List<ICommandBase>();
        addCommand(new Help());
        UnkownCommand = new Unkown();
    }

    public void addCommand(ICommandBase command)
    {
        KnownCommands.Add(command);
    }

    public ICommandBase getCommand(String input)
    {
        foreach (var command in KnownCommands)
        {
            if(true)
            {
                return command;
            }
        }
        return UnkownCommand;
    }

}
}

他のクラスにはテキストのみが含まれ、コンソールに何かを出力するだけです

2 つの質問があります: - 何が原因でしょうか - どうすればこの問題を解決できますか

編集:他のOSでもう一度試してみました(初めてvistaを使用しました)。今回はWindows 7を使用しました。最初は同じことが起こりました(最初からやり直しました..)が、いくつかのビルドと実行の後何とかまた壊れました。行った変更を元に戻す場合でも。もうビルドしません。

敬具、

江戸郵便

4

0 に答える 0