精华内容
下载资源
问答
  • 下载了微软的MC2,对于其1G的容量深恶痛绝,本身只想看看源码而已吗,怎么连那么多资源文件都下下来了,浪费了我近2个小时的时间,于是就决心要做个只含源码的精简版,才2M多,着实瘦身不少!
  • 本文主要介绍怎么使用Visual Studio自带的MC.exe工具来创建一个消息资源并将其添加到自己的DLL(或.exe)中,从而达到为自己的模块添加错误代码的目的。

    本文主要介绍怎么使用Visual Studio自带的MC.exe工具来创建一个消息资源并将其添加到自己的DLL(.exe)中,从而达到为自己的模块添加错误代码的目的。

     

    一、MC工具介绍

    Message Compiler(MC) 是用来创建消息资源的工具,这些消息资源被DLL(EXE)模块引用。MC的输入是一个特定格式的文本文件,即*.mc文件,这种特定格式使得在一个文件中定义多种语言支持变得非常容易。

    当编写完成一个*.mc文件之后,为了在程序中使用这个文件,你需要一些操作。首先,使用MC工具将这种文件编译成一个*.rc文件(还会生成*.h*.bin文件);然后将*.rc*.h添加进相应的DLLEXE)模块中编译;最后通过相应的事件日志函数或者FomatMessage函数对其中的消息文本进行使用。(具体的操作过程请看后面的例子)

     

    二、消息文本文件定义(*.mc文件)

    1、概述

    Messages定义在一个*.mc文件中,MC工具会自动为每条消息赋一个编号,然后会生成一个*.h文件,以供程序引用其中的消息ID

    *.mc文件里定义消息最常见的语法为KEYWORD=VALUE,等号两边的空格会被忽略。下一条类似的定义以空格或者换行来分隔。其中VALUE可以是一个整型常量,或者一个类似宏标识的符号,或者是一个8个字符(或更少)的名字。

     

    2、注释

    单行注释:以一个分号开头,然后后面接注释文字,为了在生成的*.h文件中也以注释状态出现,勿必在分号后面撞上一个//。如下:

    ;//这是一个单行注释


    多行注释:每行都以分号开头,但是为了同样的目的,勿必如以下写多行注释:

    ;/*这是多行注释

    ;这是多行注释

    ;这是多行注释*/

     

    3、头部定义块

    *.mc文件以头部定义开始,头部定义一些名字标识以及语言标识供后面消息定义使用。头部通常包含以下0个或多个声明(可以是多个相同的声明,比如语言部分)。

    MessageIdTypedef=type----用于消息标识定义的类型,如#define name ((type)0xnnnnnnnn)  注:在*.h文件中可看到此类定义。这个类型必须能够容下消息码的范围(32位),比如DWORD。这个类型也可以是程序部分中自定义的。默认状态下是无类型的,也就没有相应的转换。你可以在需要使用这个声明时,才开始定义它。如:MessageIdTypedef=DWORD

    SeverityNames=(name=number[:name])----设置消息码中第3130位,即Severity部分。

    默认的设置如下:

    SeverityNames=(

    Success=0x0

    Informational=0x1

    Warning=0x2

    Error=0x3

    )

    FacilityNames=(name=number[:name])----设置消息码中27--16位,即Facility部分,默认的设置如下:

    FacilityName=(

    System=0x0FF

    Application=0xFFF

    )

     

    LanguageNames=(name=number:filename)----设置消息所用语言标识,可设置多个语言版本。默认的设置如下:

    LanguageNames=(English=1:MSG0001),其中1可由宏MAKELANGID生成,比如生成简体中文的,MAKELANGID( LAN_CHINES, SUBLANG_CHINESE_SIMPLIFIED),生成的值 为0x804,则我们可以定义LanguageNames=(Chinese=0x804:MSG0804),其中MSG0804是我们自定义的名字,生成的*.bin文件会以其命令,如MSG0804.bin

    OutputBase=number----生成消息常量数值格式,比如指定16,生成16进制的数,指定10,生成10进制的数等。

     

    4、消息主体定义 

    消息文本文件包含以下0个或多个声明,其中MessageId标识了一个消息定义的开始,必须存在,SeverityFacility声明是可选的。

    MessageId=[number|+number]----消息序号标识,这项必须要有,但是值是可选的。如果没有指定值,此值等于上一个Facility加上1,如果在指定的值前面带上了一个+号,则用上一个Facility加上此值来生成MessageId

    Severity=name----在头部声明FacilityNames指定的一个名字,这个声明是可选的。如果没有指定值,则使用在消息定义块中最后指定的那个值。默认的第一个消息定义是

    Facility=Application

    SymbolicName=name----一个标识符,在*.h文件中可看到,如#define name ((type)0xnnnnnnnn)

    OutpubBase={number}----生成消息常量数值格式,比如指定16,生成16进制的数,指定10,生成10进制的数等。

    Language=name----在头部声明LanguageNames指定的一个名字,此项是可选项,如果没有指定值,则使用在消息定义块中最后指定的那个值。默认的第一个消息定义是

    Language=English

    Message Text----消息文本。

    .(点号) ----消息定义终止符,注:此终止符为英文输入模式下输入,否则使用mc工具进行编译时会提示无终止符的。消息定义例子如下:

    MessageId=0x1

    Severity=Error

    Facility=Runtime

    SymbolicName=MSG_BAD_COMMAND

    Language=English

    You have chosen an incorrect command.

    .

    Language=Chinese

    你选择了一个不正常的命令。

    .

     

    你还可以在消息文本定义中使用一些控制符,具体的可查看MSDN

     

    三、*.mc文件定义的例子

     

    1、文件内容,文件名字McFile.mc

     

    ;//***** Sample.mc *****
    
    ;//This is the header section.
    
    MessageIdTypedef=DWORD
    
    SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
        Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
        Warning=0x2:STATUS_SEVERITY_WARNING
        Error=0x3:STATUS_SEVERITY_ERROR
        )
    
    
    FacilityNames=(System=0x0:FACILITY_SYSTEM
        Runtime=0x2:FACILITY_RUNTIME
        Stubs=0x3:FACILITY_STUBS
        Io=0x4:FACILITY_IO_ERROR_CODE
    )
    
    LanguageNames=(English=0x409:MSG00409)
    LanguageNames=(Chinese=0x804:MSG00804)
    
    ; // The following are message definitions.
    
    
    MessageId=0x1
    Severity=Error
    Facility=Runtime
    SymbolicName=MSG_BAD_COMMAND
    Language=English
    You have chosen an incorrect command.
    .
    Language=Chinese
    你选择了一个不正常的命令。
    .
    
    MessageId=0x2
    Severity=Warning
    Facility=Io
    SymbolicName=MSG_BAD_PARM1
    Language=English
    Cannot reconnect to the server. 
    .
    Language=Chinese
    无法连接服务器。
    .
    
    MessageId=0x3
    Severity=Success
    Facility=System
    SymbolicName=MSG_STRIKE_ANY_KEY
    Language=English
    Press any key to continue . . . %0 
    .
    Language=Chinese
    按任意键继续...
    .
    
    
    
    MessageId=0x4
    Severity=Error
    Facility=System
    SymbolicName=MSG_CMD_DELETE
    Language=English
    File %1 contains %2 which is in error 
    .
    Language=Chinese
    文件 %1 包含 %2 r损坏。
    .
    
    
    MessageId=0x5
    Severity=Informational
    Facility=System
    SymbolicName=MSG_RETRYS
    Language=English
    There have been %1!d! attempts with %2!d!%% success%! Disconnect from the server and try again later. 
    .
    Language=Chinese
    未知错误!无法连接服务器,请稍后重试!
    .
    

     

    2、使用MC工具编译

    打开visual studio的命令行界面,进入McFile.mc文件目录,使用命令mc -a -A McFile.mc进行编译,如下:

     

     

    编译成功后,会在当前目录下生成McFile.hMcFile.rcMSG00409.binMSG00804.bin四个文件,因为文本文件中支持中英文,所以生成了两个*.bin文件。

     

    McFile.h文件部分预览如下:

    //***** Sample.mc *****
    //This is the header section.
    // The following are message definitions.
    //
    //  Values are 32 bit values layed out as follows:
    //
    //   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
    //   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
    //  +---+-+-+-----------------------+-------------------------------+
    //  |Sev|C|R|     Facility          |               Code            |
    //  +---+-+-+-----------------------+-------------------------------+
    //
    //  where
    //
    //      Sev - is the severity code
    //
    //          00 - Success
    //          01 - Informational
    //          10 - Warning
    //          11 - Error
    //
    //      C - is the Customer code flag
    //
    //      R - is a reserved bit
    //
    //      Facility - is the facility code
    //
    //      Code - is the facility's status code
    //
    //
    // Define the facility codes
    //
    #define FACILITY_SYSTEM                  0x0
    #define FACILITY_STUBS                   0x3
    #define FACILITY_RUNTIME                 0x2
    #define FACILITY_IO_ERROR_CODE           0x4
    
    
    //
    // Define the severity codes
    //
    #define STATUS_SEVERITY_WARNING          0x2
    #define STATUS_SEVERITY_SUCCESS          0x0
    #define STATUS_SEVERITY_INFORMATIONAL    0x1
    #define STATUS_SEVERITY_ERROR            0x3
    
    
    //
    // MessageId: MSG_BAD_COMMAND
    //
    // MessageText:
    //
    //  You have chosen an incorrect command.
    //
    #define MSG_BAD_COMMAND                  ((DWORD)0xC0020001L)


     

    3、将生成的资源文件编译进dll(exe)模块中。

    创建一个WIN32DLL工程,将McFile.hMcFile.rc文件添加进去,进行编译,生成相应的dll即可提供给我们的程序使用。

     

    四、使用自己定义的错误代码,即第三步生成的消息资源模块

     

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    
    //
    #ifdef _UNICODE
    #define COUT wcout
    #else
    #define COUT cout
    #endif
    
    
    int main()
    {
    	DWORD dwError = 0;
    
    	DWORD dwLanguageId = MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL );
    
    	//解决问题:wcout输出时显示不了中文
    	COUT.imbue( std::locale( "chs" ) );
    
    	HLOCAL lpMsgTextBuf = NULL;
    	COUT << TEXT("输入一个自定义的错误代码(如:3221356545(0xC0020001) ):");
    	while( cin >> dwError )
    	{
    		lpMsgTextBuf = NULL;
    
    		HMODULE ghResDll = LoadLibrary( TEXT("WinMsgDll.dll") );
    		if ( NULL == ghResDll )
    		{
    			COUT << TEXT("加载消息模块失败!") << endl;
    			return -1;
    		}
    
    
    		BOOL bOk = FormatMessage( FORMAT_MESSAGE_FROM_HMODULE | 
    			FORMAT_MESSAGE_IGNORE_INSERTS | 
    			FORMAT_MESSAGE_ALLOCATE_BUFFER,
    			ghResDll, dwError, dwLanguageId, (LPTSTR)&lpMsgTextBuf, 0, NULL );
    
    
    		if ( !bOk )
    		{
    			COUT << TEXT("error ") << GetLastError() << endl;
    		}
    
    		if ( NULL != lpMsgTextBuf )
    		{
    			COUT << (LPTSTR)lpMsgTextBuf << endl;
    			LocalFree( lpMsgTextBuf );
    		}
    
    		COUT << TEXT("输入一个自定义的错误代码(如:3221356545(0xC0020001) ):");
    	}
    	return 0;
    }


    五、相应例子visual studio 2005工程文件代码下载

    工程文件下载:使用MC工具创建自定义错误代码DLL

     

    作者:山丘儿
    转载请标明出处,谢谢。原文地址:http://blog.csdn.net/s634772208/article/details/46402677

    展开全文
  • mc

    2020-03-08 17:47:39
    所有文件(MC): 简介: Minecraft 启动器开发者 Nathan AdamsPetr Mrázek‎平台编写语言C++[1]当前版本 2.1.11312 2.1.11318 2.1.11314 ...它负责下载主要的Java软件包,包括含有游戏代码和诸如材质等资源的minec...

    所有文件(MC):

    简介:

    Minecraft 启动器开发者
    Nathan AdamsPetr Mrázek‎平台编写语言C++[1]当前版本
    2.1.11312 2.1.11318 2.1.11314
    Minecraft 启动器(Minecraft Launcher)是一个独立于客户端的提供登录和下载功能的游戏启动前端。它负责下载主要的Java软件包,包括含有游戏代码和诸如材质等资源的minecraft.jar以及LWJGL。这有点像在第一次登录时强制让用户登录到一个付费账户上的角色,它十分的基础、简单和易破解。可以使用启动器来运行所有正式(release)版本的Minecraft,绝大多数Beta版本,以及小部分的Classic、Indev、 Infdev以及Alpha版本。不是游戏的所有版本都被包括其中(要查看启动器所有未包括的版本,详见“启动器中丢失的版本”)。当前的启动器是Minecraft的第七代启动器,且是第三代可自我更新的启动器。

    目录
    1启动

    2特性
    2.1启动器
    2.2向后兼容性
    2.3皮肤
    2.4配置
    3命令行用法

    4历史
    4.1Minecraft启动器

    5画廊
    5.1版本记录
    5.22010-2016
    5.32016-2019
    5.42019至今
    5.5背景图片
    6你知道吗
    7参考
    8另见

    SPONSORED

    Write With Confidence

    Adgrammarly.com▼
    Trusted by millions of students, faculty, and professionals worldwide. Try now

    RESULTS FOR FREE DOWNLOADS ON PC

    Download Minecraft 1.15.2, 1.15.1, v1.15.0 Update Free PC, APK …

    https://pcminecraft-mods.com/download-minecraft-1-15-v1-15-0-free-version/
    15.0 Buzzy Bees Update free version. … 1 Bees is the latest update for PC and Android which can be downloaded for free. The release of new Minecraft Java Edition 1.15.

    Minecraft Mods 1.15, 1.14.4 - PCMinecraft-Mods.com

    https://pcminecraft-mods.com/category/mods-for-minecraft/page/223/
    Modifications (Mods) for 1.14.4 Java Edition is all that changes the original Minecraft Village and Pillage Update world, adding something new or changing an.

    Download Minecraft 1.14.4, 1.14.3 Free PC Java Edition version …

    https://pcminecraft-mods.com/download-minecraft-1-13-aquatic-update-for-macos-windows/
    In this article you can download Minecraft 1.14. 4 Java Edition latest version, as well as all updates and future versions, for example 1.16 or 1.15. … New Villagers in Minecraft 1.14.

    Minecraft Mods 1.15, 1.14.4 - PCMinecraft-Mods.com

    https://pcminecraft-mods.com/category/mods-for-minecraft/page/48/
    Modifications (Mods) for the latest version of Minecraft PC Java Edition 1.15 and 1.14.4. New Mods for the 1.16 Nether Update, the 1.15 Bees Update and the 1.

    Download Minecraft Apk v1.15.2, 1.14.4, v1.14.20 | PC Java Edition …

    https://pcminecraft-mods.com/category/download-minecraft-free/
    Here you can free download the latest full version of Minecraft 1.15.2 - 1.14.4 for PC (Java Edition) & Minecraft PE 1.14.2.50, 1.14.20 Bedrock Edition.

    Minecraft 1.15 Download Free Java Edition | PC Java Mods

    https://pcminecraft-mods.com/download-minecraft-1-15-free-pc-java-edition/
    A huge update for Minecraft Java Edition is now available for download on PC. The 1.15 version is full of new gameplay features, for example it contains The.

    Download Minecraft 1.6.2 | PC Java Mods - PCMinecraft-Mods.com

    https://pcminecraft-mods.com/download-minecraft-1-6-2/
    The release version of Minecraft 1.6.2 has not kept itself waiting long. Now you can download Minecraft 1.6.2 directly from our website, free of charge. The.

    Download Minecraft 1.6.4 | PC Java Mods - PCMinecraft-Mods.com

    https://pcminecraft-mods.com/download-minecraft-1-6-4/
    In General, despite the fact that this version of the game is a transition, I would still recommend you to download Minecraft 1.6.4 on your
    computer.

    SPONSORED

    Over 20 Million Users

    Adgrammarly.com▼
    Makes sure everything you type is easy to read and mistake-free. Try now

    RESULTS FOR MINECRAFT 1.15

    Download Minecraft 1.15.2, 1.15.1, v1.15.0 Update Free PC, APK …

    https://pcminecraft-mods.com/download-minecraft-1-15-v1-15-0-free-version/
    15.0 Buzzy Bees Update free version. … 1 Bees is the latest update for PC and Android which can be downloaded for free. The release of new Minecraft Java Edition 1.15.

    Impossadropper Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/impossadropper-map-minecraft/
    Here is a very short, but quite complex map in the style of dropper. Here, during the exciting four levels you need to fall down and in parallel to Dodge all.

    WaterIslandsVerl Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/waterislandsverl-map-minecraft/
    Here you will find yourself on a desert island where there is only sand. You can even find places for sacrifice. Crosses with a treasure will be located.

    Minecraft 1.15, 1.15.2 Texture Packs | Java Edition Textures

    https://pcminecraft-mods.com/tag/resource-packs-for-minecraft-1-15/
    Various realistic, simple, themed and improved 3D default Minecraft 1.15 texture packs. Download 1.15.1 resource packs for the new Minecraft buzzy bees …

    Minecraft Mods 1.15, 1.15.1 For Forge & Fabric Loader | PC Java …

    https://pcminecraft-mods.com/tag/mods-for-minecraft-1-15/
    A huge list of community mods for Minecraft 1.15. Here you will find and download mods for the new update of 1.15.1 version. Add tweaks or full modifications to …

    Digital Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/digital-map-minecraft/
    On this map, you’ll find yourself in the role of a simple guy who played video games all night and eventually got stuck inside the game console. You have only.

    The Finale Save Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/finale-save-map-minecraft/
    Here is the long-awaited final part of the popular horror map theSave. In this sequel, there is a very terrible and uncontrollable mass destruction of spirits.

    I Would Run Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/run-map-minecraft/
    Interesting parkour test with a unique story in which you have to find three crystals and save the planet. Map for professionals in parkour, as there are.

    Wut? 2: The Other One Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/wut-2-one-map-minecraft/
    The second part of the popular adventure map, in which your character, after moving to another city, becomes an ordinary employee of a local Corporation, …

    Island Parkour Map For Minecraft 1.15, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/island-parkour-map-minecraft/
    Unique, very beautiful and really well thought-out air parkour-test is waiting for you on this map! To pass which you have to visit all six flying Islands,

    SPONSORED

    免费下载

    Adwarthunder.com▼
    立即开始免费游戏,和上千万的真实玩家同台竞技

    https://warthunder.com/zh/playnow4free?r=sem_6491170486_78283699419_381635213414_
    返回上一页

    RESULTS FOR MINECRAFT FULL GAME FREE

    Download Minecraft 1.15.2, 1.15.1, v1.15.0 Update Free PC, APK …

    https://pcminecraft-mods.com/download-minecraft-1-15-v1-15-0-free-version/
    … after adding the pre-release version. Release Date: The Buzzy Bees Update, January 15, 2020; Latest Version: 1.15.2 pre-release 1 and 1.15.1 Full version …

    Download Minecraft 1.13.0.34 Free Apk MCPE v1.13.0 for iOS …

    https://pcminecraft-mods.com/download-minecraft-1-13-0-34-free-mcpe-1-13-0-apk/
    Finally, the developers have released an update for the new version of Minecraft PE (Bedrock) 1.13 for all current platforms (iOS, Android, Windows 10) and now. … Minecraft 1.13.0 release date. This version has completed its beta testing and gone into full release; Latest version: 1.13.0.34 (October 30, 2019) …

    Download Minecraft 1.13.1.5 Free Apk MCPE v1.13.1 for iOS …

    https://pcminecraft-mods.com/download-minecraft-1-13-1-5-free-v1-13-1-apk/
    The release of the full version for Minecraft PE (Bedrock), this update contains several features for the 1.13. 1 version and it is available for iOS, Android, Windows 10 and all other platforms. … This is a small patch for MCPE 1.13 and it should fix all the issues from the previous …

    Download Minecraft 1.14.4, 1.14.3 Free PC Java Edition version …

    https://pcminecraft-mods.com/download-minecraft-1-13-aquatic-update-for-macos-windows/
    In this article you can download Minecraft 1.14.4 Java Edition latest version, as well as all updates and future versions, for example 1.16 or 1.15. There is.

    Minecraft 1.15 Download Free Java Edition | PC Java Mods

    https://pcminecraft-mods.com/download-minecraft-1-15-free-pc-java-edition/
    A huge update for Minecraft Java Edition is now available for download on PC. The 1.15 version is full of new gameplay features, for example it contains The.

    The Game by denr03 Map For Minecraft 1.15.1, 1.14.4 | PC Java Mods

    https://pcminecraft-mods.com/game-denr03-map-minecraft/
    This map consists of many tasks that the GAME itself has created for you. … The Game by denr03 Map For Minecraft … Download Minecraft 1.15.1, v1.15.0 Buzzy Bees Update free version · Download Minecraft PE 1.6.1, 1.5.3.0 APK MOD Aquatic Update Full Version · Forge Mod For Minecraft 1.15.1, 1.15, 1.14.4 · Download …

    Minecraft Mods 1.10 – 1.10.2 | Part 111

    https://pcminecraft-mods.com/tag/minecraft-mods-1-10-1-10-2/page/111/
    A great addition to decorative modification FRSM, for the true lovers of Board games that will add a set of items for the full game in the popular Board game.

    Download Minecraft Apk v1.15.2, 1.14.4, v1.14.20 | PC Java Edition …

    https://pcminecraft-mods.com/category/download-minecraft-free/
    Here you can free download the latest full version of Minecraft 1.15.2 - 1.14.4 for PC (Java Edition) & Minecraft PE 1.14.2.50, 1.14.20 Bedrock Edition.

    Golden Improvement Resource Pack For Minecraft 1.13.2 | PC Java …

    https://pcminecraft-mods.com/golden-improvement-resource-pack-minecraft-1-13-2/
    Golden Improvement was created specifically to improve almost all sides of minecraft, which combine the textures of different versions of the game and using.

    Download Minecraft 1.14.20.1 Bees Update, v1.14.4 Apk Free | PC …

    https://pcminecraft-mods.com/download-minecraft-1-14-0-v1-14-0-1-apk-minecraft-pe-free/
    Minecraft 1.14.20.1 apk The Buzzy Bees Update is a new version of Minecraft PE after downloading of this app you can see the new gameplay features. Now it. … release date. The release of The Buzzy Bees Update full version should take place before the end of November; Latest version: 1.14.20.1 (January 28, 2020) …

    <本站文本内容除另有声明外,转载时均必须注明出处。(详情…)>文件:2019Launcher.png

    文件 文件历史 文件用途

    本预览的尺寸:800×456像素。 其他分辨率:320×182像素 | 984×561像素。
    原始文件 ‎(984 × 561像素,文件大小:267 KB,MIME类型:image/png)

    授权协议[编辑 | 编辑源代码]

    该文件(或其一部分)的著作权属于Mojang AB。
    此截图、材质、声音、歌曲或其他Mojang资源,及上述之衍生作品皆不受Curse.com服务条款之限,但可以在本Wiki上自由使用。
    文件历史
    单击某个日期/时间查看对应时刻的文件。
    日期/时间
    缩略图
    大小
    用户
    备注

    当前
    2020年1月20日 (一) 04:20

    984 × 561(267 KB)
    Thgabs(讨论 | 贡献)
    将用户名替换为“Steve”

    2019年11月18日 (一) 13:36

    984 × 561(336 KB)
    Lightyzhh(讨论 | 贡献)
    露边框了,再重新传一下

    2019年11月18日 (一) 13:32

    985 × 563(336 KB)
    Lightyzhh(讨论 | 贡献)
    效果有点奇怪,重新传一张新的

    2019年6月23日 (日) 05:23

    1,160 × 644(448 KB)
    MysticNebula70(讨论 | 贡献)

    2019年6月19日 (三) 14:33

    1,203 × 697(480 KB)
    MysticNebula70(讨论 | 贡献)
    Category:汉化图像
    *
    您不可以覆盖此文件。

    文件用途
    以下页面使用本文件:
    *
    Minecraft启动器

    分类: Mojang图像汉化图像

    导航菜单

    文件

    讨论

    大陆简体

    分享

    查看

    编辑

    编辑源代码

    历史
    搜索

    首页
    社区专页
    管理员告示板
    管理制度
    Wiki条例
    Wiki手册
    标准译名列表
    Wiki贡献排名
    最近更改
    随机页面
    Wiki微博
    计划
    沙盒
    Minecraft

    官方网站
    官方论坛
    客户服务
    漏洞追踪
    建议反馈
    Twitter
    Facebook
    YouTube
    Minecraft Twitch
    Mojang Twitch
    Mixer
    常用页面
    Gamepedia
    工具
    其他语言

    English

    本页面最后编辑于2020年1月20日 (星期一) 04:20。

    除非另有声明,本网站内容采用CC BY-NC-SA 3.0授权。
    Game content and materials are trademarks and copyrights of their respective publisher and its licensors. All rights reserved.
    This site is a part of Fandom, Inc. and is not affiliated with the game publisher.
    关于Minecraft Wiki
    免责声明
    手机版视图

    支持
    联络
    PRO

    探寻特色
    Fandom
    Gamepedia
    D&D Beyond
    Muthead
    Futhead
    关注我们

    概览
    关于
    招聘
    通讯
    联系我们
    服务条款
    隐私权政策
    社群
    社群中心
    支持
    帮助
    Do Not Sell My Info
    推广
    媒体介绍
    联系我们

    Minecraft Wiki是Fandom的游戏社区之一。
    查看移动版视图

    文件:2019Launcher.png

    授权协议

    该文件(或其一部分)的著作权属于Mojang AB。
    此截图、材质、声音、歌曲或其他Mojang资源,及上述之衍生作品皆不受Curse.com服务条款之限,但可以在本Wiki上自由使用。

    插入段落

    分类: Mojang图像汉化图像

    导航菜单

    文件

    讨论

    大陆简体

    分享

    查看

    编辑

    编辑源代码

    历史
    搜索

    首页
    社区专页
    管理员告示板
    管理制度
    Wiki条例
    Wiki手册
    标准译名列表
    Wiki贡献排名
    最近更改
    随机页面
    Wiki微博
    计划
    沙盒
    Minecraft

    官方网站
    官方论坛
    客户服务
    漏洞追踪
    建议反馈
    Twitter
    Facebook
    YouTube
    Minecraft Twitch
    Mojang Twitch
    Mixer
    常用页面
    Gamepedia
    工具
    其他语言

    English

    本页面最后编辑于2020年1月20日 (星期一) 04:20。

    除非另有声明,本网站内容采用CC BY-NC-SA 3.0授权。
    Game content and materials are trademarks and copyrights of their respective publisher and its licensors. All rights reserved.
    This site is a part of Fandom, Inc. and is not affiliated with the game publisher.
    关于Minecraft Wiki
    免责声明
    手机版视图

    支持
    联络
    PRO

    探寻特色
    Fandom
    Gamepedia
    D&D Beyond
    Muthead
    Futhead
    关注我们

    概览
    关于
    招聘
    通讯
    联系我们
    服务条款
    隐私权政策
    社群
    社群中心
    支持
    帮助
    Do Not Sell My Info
    推广
    媒体介绍
    联系我们

    Minecraft Wiki是Fandom的游戏社区之一。
    查看移动版视图

    编辑“File:2019Launcher.png”

    提示:您正在以未注册用户身份编辑。欢迎您登录或创建账户,您的编辑将归于您的用户名之下,并有资格获取免广告权利。

    高级
    特殊字符
    帮助

    拖动文件至此

    摘要:(请简述您所作的修改)

    请留意所有对Minecraft Wiki的贡献都默认在《知识共享 署名-非商业性使用-相同方式分享 3.0》下发表(详阅Minecraft Wiki:著作权)。若您不愿意您的作品被任意编辑或者二次发布,请勿在此处提交。
    您同时也承诺这些内容的作者是您自己,或得自公有领域及类似的自由来源。请勿私自提交受著作权保护的材料!
    您也可以将取自Mojang(及其网站、说明、指南、艺术概念、渲染图、出版物、第三方网站组件,以及其他此类Mojang已对外公开的受保护材料)的内容上传至Minecraft Wiki。所有权力、署名与利益在合适时仍归属Mojang,也不依照服务条款被授权。
    取消

    该页面使用的模板:导航菜单

    文件

    讨论

    大陆简体

    分享

    查看

    编辑

    编辑源代码

    历史
    搜索

    首页
    社区专页
    管理员告示板
    管理制度
    Wiki条例
    Wiki手册
    标准译名列表
    Wiki贡献排名
    最近更改
    随机页面
    Wiki微博
    计划
    沙盒
    Minecraft

    官方网站
    官方论坛
    客户服务
    漏洞追踪
    建议反馈
    Twitter
    Facebook
    YouTube
    Minecraft Twitch
    Mojang Twitch
    Mixer
    常用页面
    Gamepedia
    工具

    Game content and materials are trademarks and copyrights of their respective publisher and its licensors. All rights reserved.
    This site is a part of Fandom, Inc. and is not affiliated with the game publisher.
    关于Minecraft Wiki
    免责声明
    手机版视图

    支持
    联络
    PRO

    探寻特色
    Fandom
    Gamepedia
    D&D Beyond
    Muthead
    Futhead
    关注我们

    概览
    关于
    招聘
    通讯
    联系我们
    服务条款
    隐私权政策
    社群
    社群中心
    支持
    帮助
    Do Not Sell My Info
    推广
    媒体介绍
    联系我们

    Minecraft Wiki是Fandom的游戏社区之一。
    查看移动版视图

    “File:2019Launcher.png”的版本历史

    查看该页面的日志(查看滥用日志)
    搜索修订版本截止年份: 截止月份: 标签过滤器:

    差异选择:选中要对比的版本的单选按钮,按Enter键或下方的按钮。
    说明:(当前)=与最后版本之间的差异,(之前)=与上一版本之间的差异,小=小编辑。
    *
    当前之前 2020年1月20日 (一) 04:20‎ Thgabs 讨论 贡献‎ 64字节 0‎ Thgabs上传File:2019Launcher.png的新版本 撤销
    *
    当前之前 2019年11月18日 (一) 13:36‎ Lightyzhh 讨论 贡献‎ 64字节 0‎ Lightyzhh上传File:2019Launcher.png的新版本 撤销
    *
    当前之前 2019年11月18日 (一) 13:32‎ Lightyzhh 讨论 贡献‎ 64字节 0‎ Lightyzhh上传File:2019Launcher.png的新版本 撤销
    *
    当前之前 2019年6月23日 (日) 05:23‎ MysticNebula70 讨论 贡献‎ 64字节 0‎ MysticNebula70上传File:2019Launcher.png的新版本 撤销
    *
    当前之前 2019年6月19日 (三) 14:35‎ MysticNebula70 讨论 贡献‎ 64字节 -18‎ 撤销
    *
    当前之前 2019年6月19日 (三) 14:33‎ MysticNebula70 讨论 贡献‎ 82字节 +82‎ Category:汉化图像

    导航菜单

    文件

    讨论

    大陆简体

    分享

    mc代码:
    输入方法:  服务器(服务器请直接打指令),如果是单人请按Esc-局网络什么什么的,让后按T 输入/ 加指令,比如/gamemode 1(创造模式),/xp 加数值(给等级),/fly (开启飞行),/ give 加上物品数值(取得某样东西)  再普及一下知识:我的世界中作弊码被叫做指令(后台服务命令),开放局网络是用你的游戏存档向使用同一网络的人开放,开服是以你的电脑为基础开发一个服务端,可以使全球的用户都可以进入(局网络功能不如开服)。  代码大全:单机命令说明 ascend 把自己提升到上一个平台 bind <KEYCODE值> <命令> {命令关键字} 设置一键命令 clear 清空控制台 damage 关闭或者开启伤害 即无敌 descend 把自己移动到下面一个的平台 destroy [all] 破坏当前的东西(背包) defuse [all] 拆弹(拆除已经点燃了的TNT炸药) diff X difficulty 设置游戏难度 dropstore 在身边创建一个储物柜 *drops 开关物品掉落,关闭的话采矿打怪不掉东西。 dupe [all] 复制东西 duplicate [all] 复制手上的东西并丢出来 explode [范围] 设置一个地方爆炸(在自家慎用) extinguish [all] 熄灭周围所有的火 ext [all] 一样是熄灭火 falldamage 开关高空落下伤害 firedamage 开关火的伤害 fly 飞行模式 *freeze 冻结怪物 give <物品> [数量] 给一样物品 goto <名字> 去一个地方 grow [all] 让立即小麦成长 h [COMMAND] 命令列表/帮助 heal 补指定的血 health <MIN|MAX|INFINITE> 设置生命值 help [COMMAND] 命令列表/帮助 home 回到出生点 i <物品代码> [数量] 刷东西 instantmine 开关即时采矿(采矿无延迟) item <物品代码|物品名称> [数量] [费用] 给玩家物品, 如果不指定则是最大的数量 itemname 显示当前手上的物品名称 itemstack <物品代码> [数量] 给玩家指定数量的物品 kill 自杀不解释 jump 瞬移到鼠标所指的地方 killnpc [all] 杀死周围全部NPC 或者叫 杀了附近所有除自己外的活体生物 l X *light 把光永久性关闭 listwaypoints 列出所有路径点 macro <文件名> {参数} 允许运行宏 maxstack [物品ID|物品名称|全部] [数量] 最大的把某物品堆起来 *mobdamage 怪物不会给你伤害 msg <消息> 添加一个消息到控制台 music [音量] 播放音乐 noclip 穿墙 p 显示当前坐标 pos 现在玩家的坐标 reach 玩家到指定地方 return 传送到之前传送的地方 rem 删除指定路点 removedrops [all] 删掉地上物品 *rename 修改命令名称 replenish [all] X repair [all] 修复当前物品耐久 reset 恢复默认设置 s <名字> Same as /set search <关键词> 搜索物品名称 set <名字> 在这世界标记一个路径点 setjump [JUMP|reset] 设置跳跃的高度 落地伤害和移动 1:1 setspawn [ ] 设置当前位置 X轴 Y轴 Z轴 setspeed [速度|重置] 设置移动速度 spawn <NAME|ID|random|list> [QTY] 产生一个生物 spawnstack <NAME|ID|random|list> {NAME|ID|random} 产生一个合体的怪物NPC *superheat [all] Turns items which are furnace-able into their furnaced form t Same as /tele tele 传送到此坐标 time [set|get|day|night [minute|hour|day [TIME] 设置指定时间得到物品 timeschedule <reset | 设定一段时间段,让世界永远保持在这段时间之间- - 《凉宫春日漫无止境的八月》 unbind <KEYCODE值> 解除一个命令 useportal 传送到地狱 waterdamage 开关潜水伤害 world <load|save|seed|new|exit|list> 世界情报 world load 加载指定的文件 world save 保存退出游戏 world seed [SEED] 给你看看你世界里有多少个方块 world new [FILENAME] [SEED] 在指定位置创建新地图 world exit 不保存退出游戏 world list 列出所有存档 你可以去这看 “.minecraft/saves” * = 新命令? setspawn 设置重生点

    欢迎阅读Minecraft(我的世界)快速入门:在Minecraft的世界中,你能用方块建造出漂亮的建造,一切取决于你的想象。在游戏中,20分钟为一个日夜循环白天10分钟,日落日出占1.5分钟,夜晚7分钟。黑夜怪物会在自动刷出,使得夜晚变得危险!
    基本操作
    操作的预设按键是:
    W 向前移动
    S 向後移动
    A 向左移动
    D 向右移动
    E 打开物品栏
    空格键 跳
    左SHIFT 蹲下/慢慢地走
    按1-9 选择你物品栏快捷栏的物品
    (这些预设按键可以在主选单或游戏中按”ESC”的OPTION改变)
    当进入一个新的世界的时候,最重要的两件事是合成工具和建造住房,在第一个夜晚来临之前,寻找树木和采集木头是制作工具的第一个步骤。
    一旦你找到树木,用你的拳头敲打它们,并收集木头。按住鼠标左键,方块中间就会出现裂痕,一会它就会被打碎,并掉落到地面,你靠近它,这样你就能收集资源了。
    继续砍伐树木,直到你拥有10个木材。
    现在你完成了木材的收集了,接着你需要寻找一个地方来建设你的第一个房屋,来度过第一个夜晚。请记住,你的第一个建筑应该是一个简单的房屋,主要是用来躲避晚上的怪物。山顶通常是一个理想的避难场所,当然所有地方都可以建设。
    一旦你找到了合适的地点来建造你的房屋,是时候将你的木头变成木材了。按”E”键打开你的物品栏,你应该会看到窗口右上角有一个2X2的网格,当你将木头放入这些网格中的一格时,没一个木头都能转换成4个木材。转换出24个木材。
    现在你有木材了,你可以合成你的第一个工作桌,拥有工作桌,你可以合成更多的物品,将工作桌放在一个你能够到的位置。
    一旦你安放好你的工作桌后,你可以打开它(鼠标右键),这时会在左上角出现一个3X3的网格,将2个木材放在一上一下2个不同的网格中,这样你就能合成木棒,合成12个木棒。
    使用你物品栏中的木材和木棒,你可以合成一套木制工具。首先你应该合成一把木锄头,一把木斧,一把木铲子,一把木剑。
    一旦你制作好你的工具,你就可以开始建造你的第一个建筑了。一个可以避难的场所,主要是躲避夜晚的怪物,一般情况下,你的工作桌,被放在了合适的位置,如果你想调整工作桌的位置,你可以用拳头敲打工作桌,就像采集木头那样,捡起它并把它放在合适的位置。
    使用木铲,你将能更快的收集泥土,但是如果你有石头的铲子,能获得更快的采集速度和更高的耐久度。你的房子不需要很大,只要能够帮你度过夜晚就足够了。
    最后还有一步,帮你安全的度过第一个夜晚,寻找鹅卵石,合成一个火炉。如果你不能找到鹅卵石,试着将地表的泥土挖掉几层,知道你看到鹅卵石,收集20快鹅卵石
    收集了足够的鹅卵石后,你就可以返回你的房屋。使用鹅卵石合成你的火炉。火炉的合成方法是,将鹅卵石放在工作桌3X3网格的四周,中间一个网格留空,将火炉放在合适的位置。
    现在你拥有火炉了,你可以烧制木炭了。打开火炉,在下面的网格中放入木头或者木材,在上面的网格中放入木头。木头会自动被烧制成木炭,烧制5块木炭
    将木炭和多余的木棒合成为火把,打开工作桌,将木棒和木炭一上一下放置(木炭上,木棒下)。你可以将火把放置在你的屋里,照亮房间。
    到目前位置,你已经掌握了基本的生存本领。你可以开始探索这个世界,建造宏伟的建造。当你在夜晚来临前完成了房屋的建设,你也可以选择外出,探索夜晚的世界,当然要小心某些绿色的家伙!
    基本按键

    基本按键
      【鼠标左键】 按住不放摧毁方块,使用工具
      【鼠标右键】 放置方块或特殊功能
      【中间滚轮】 在两方块都在主物品栏(背包最下面那一条)的前提下,拿着手中的其中一方块,猛击滚轮其想切换的已放置的另一方块,即立马切换到想切换的另一方块。(例子:如果我背包下面那一条里有一个tnt 有一个黑曜石 拿着tnt滚轮一个已经放在外面的黑曜石 将会由手中的tnt自动切换到黑曜石)
      【键盘WASD】 前后左右移动
      【空格】 跳跃
      【左Shift】 蹲伏潜行(在脚下没路时自动停止,防坠落)
      【ESC】 调出主菜单
      【Q】 丢弃手中的物品一个
      【T】 多人联机时说话
      【E】 打开/关闭背包
      【TAB】 多人联机时查看当前在线玩家
      快捷键
      【F1】 一直隐藏UI,直到再次按下F1
      【F2】 截屏
      【F3】 一直显示信息栏(fps等)
      【F3+F】 调节视距(游戏很卡的情况下可按此键将视距调短以降低对硬件的要求)【F5】 切换第一/背面第三人称/正面第三人称
      【F10】 取消选择minecart窗口(释放鼠标)
      【F11】 切换全屏
      默认是生存模式——就是大多数人一直在玩的
      默认关闭作弊、关闭奖励箱,开启生成建筑,这些设置都能自己调整。
      各大模式:
      极限模式
      为啥叫“极限”模式?不因为什么,只是因为这个模式死亡后会无法复活强制删除存档,没有多少人会去尝试辛辛苦苦打了很久删除存档的滋味!
      创造模式
      这个模式通常都是用来自己建筑,搞红石,神马的,瞬间破坏方块,无法死亡(除非掉进虚空……),无限资源,默认开启作弊、关闭奖励箱,开启生成建筑,且全部都能自己调整。下图为创造模式的物品栏。
      冒险模式
     这个模式只能通过在开启作弊的情况下输入“/gamemode 2才能进入,大多数都是在进行RPG时才会使用。不会破坏方块
    minecraft老玩家为您解答,如有帮助请采纳,如有疑问欢迎追问。

    mc:

    Java版启动器

    此条目的部分内容由于太久没更新而已过期。
    你可以帮助我们来更新此条目。

    此页面在英文Wiki中被建议移动至Launcher。 讨论
    注意: 中文Wiki的移动页面需要在讨论批准后进行,大量移动由机器人完成。
    请不要使用复制粘贴来移动页面,因为这样会丢失所有的编辑历史。

    Minecraft 启动器

    开发者

    Nathan Adams
    Petr Mrázek‎
    平台

    编写语言
    C++[1]
    当前版本

    2.1.11312
    2.1.11318
    2.1.11314

    Minecraft 启动器(Minecraft Launcher)是一个独立于客户端的提供登录和下载功能的游戏启动前端。它负责下载主要的Java软件包,包括含有游戏代码和诸如材质等资源的minecraft.jar以及LWJGL。这有点像在第一次登录时强制让用户登录到一个付费账户上的角色,它十分的基础、简单和易破解。可以使用启动器来运行所有正式(release)版本的Minecraft,绝大多数Beta版本,以及小部分的Classic、Indev、 Infdev以及Alpha版本。不是游戏的所有版本都被包括其中(要查看启动器所有未包括的版本,详见“启动器中丢失的版本”)。当前的启动器是Minecraft的第七代启动器,且是第三代可自我更新的启动器。

    目录
    1启动

    2特性
    2.1启动器
    2.2向后兼容性
    2.3皮肤
    2.4配置
    3命令行用法

    4历史
    4.1Minecraft启动器

    5画廊
    5.1版本记录
    5.22010-2016
    5.32016-2019
    5.42019至今
    5.5背景图片
    6你知道吗
    7参考
    8另见启动[编辑 | 编辑源代码]

    在用户未登录时启动器显示的登录屏幕。
    每次启动器运行时,它都会检查储存着Minecraft文件的一个特殊文件夹——.minecraft。它检查“launcher_profiles.json”的文件作为启动器的登录凭证。如果文件没找到、被损坏或没有用户登录的记录,则用户必须使用有效的付费账号来进行登录,否则用户将只能够游玩演示版或购买游戏。
    当登录后,启动器会首先尝试验证登录。如果存在有效的“launcher_profiles.json”文件,且在最后一次关闭时进行了登录,但是没有网络连接,启动器将会启动“离线游戏”模式。如果成功连接到网络,启动器将会把最新版本的“versions”文件夹与服务器的最新发布的版本进行比较。当配置选项里的“最新版本”被选择时,如果选择的版本不存在,或版本需要进行更新,启动器将会下载所有最新的Minecraft组件以及Java二进制文件。它也会将assets文件夹里的所有东西都进行同步。
    最后,一旦成功安装或更新之后,启动器将会启动“minecraft.jar”(通过“javaw.exe”,Oracle的Java虚拟机可执行文件)。在缺失“.jar”的文件的情况下仍然可以启动。在这种情况下,启动器会自动下载缺失文件,但是如果没有网络连接,则会停止下载。
    Minecraft启动器现在支持57种语言。特性[编辑 | 编辑源代码]启动器[编辑 | 编辑源代码]
    *
    管理多个配置(储存在“launcher_profiles.json”)。每个配置都可以控制:

    	* 
    

    游戏版本。包括使用已过时的预览版本和之前的预发布版。你也可以手动添加较旧/自定义的版本。[2]
    *
    在游戏内使用的Mojang账户
    *
    Java命令行参数(例如堆大小)
    *
    游戏目录(硬盘上储存游戏文件的地方)
    *
    配置文件的图片,或自制的图片
    *
    启动器不会在硬盘上储存你的密码。启动器会使用一个“刷新令牌”进行验证。
    *
    启动器支持多个实例同时运行(游戏也支持)
    *
    启动器会自动更新
    *
    启动器有更新库的能力,例如LWJGL。
    *
    离线模式(第一次启动需要有网络连接来下载所需资源)
    *
    支持 57 种语言
    *
    可以通过Hopper向Mojang报告崩溃。
    *
    通过引用数据库的崩溃信息来提供如何修复漏洞。
    *
    启动器设置
    *
    切换账户或登出
    *
    更改皮肤
    *
    下载各版本的服务器
    *
    帮助按钮
    *
    点击启动器版本可显示启动器版本信息

    向后兼容性[编辑 | 编辑源代码]

    启用了Alpha和Beta版本的配置文件。
    启动器拥有游玩旧版本Alpha和Beta的能力。当前,可以游玩快照、Alpha、Beta以及所有正式版本。四个Pre-classic版本、四个Classic版本、还有一个Infdev版本都已归纳为“old_alpha”。[3]但是目前启动器依然没有可用的Indev版本。
    尽管如此,这些版本早已过时且可能会不稳定。任何由不稳定产生的漏洞、故障、遗失的特性和崩溃都不会解决。Mojang强烈推荐您在其他目录下游玩以便它们不会损坏游戏自身。[4]
    要启用旧版本的话,单击“配置”,然后勾选“历史版本”,新增一个配置,接着在“版本”框里选择任意一个版本,然后点击“保存”按钮。皮肤[编辑 | 编辑源代码]

    启动器中的皮肤库。

    皮肤设置。
    你可以在Minecraft启动器中更改或添加你的自定义皮肤。要更改或添加你的皮肤,请点击“皮肤”按钮,然后单击“浏览”按钮浏览您的文件系统来找到您的皮肤文件 。皮肤文件的分辨率必须为64×64,否则启动器将不会接受它。此外,皮肤文件的文件格式必须为.png 。在你找到皮肤文件之后,点击"保存”按钮来确认你在游戏中的皮肤。
    *
    你可以点击“点击以重置”按钮来还原Steve或Alex的默认皮肤。
    *
    你可以在两个玩家模型中选择——经典(Steve)或纤细(Alex)。

    如果用户在游戏运转时进入该菜单,启动器底部会显示一则警告: Minecraft 正在运行。直到下一次启动后皮肤更改才会生效。配置[编辑 | 编辑源代码]
    当你第一次打开Minecraft启动器的时候,它会创建一个最新版本Minecraft的档案——你不能删除它。
    但是,你可以在启动器里创建自己的档案。点击“配置”按钮,然后点击“新增…”去创建一个。在此之后,你可以输入你想要的名字。如果你不输入名字,它将被命名为“未命名的配置”。然后你可以在启动器里自定义一张档案的图标。但是它必须是128×128且后缀为.png的图片。选择你想要的版本,然后点击“保存”去保存你的档案。若想更更改一个档案,则只需点击它,这同样适用于删除一个档案。点击你想要删除的档案然后单击“删除 [X]”按钮。
    *

    启动器中的配置设置
    你可以通过点击“服务器”来下载服务端版本。
    *
    如果想要调整游戏窗口大小,开启“分辨率”来更改游戏窗口大小。
    *
    你可以开启“高级设置”以显示更多的配置选项。
    *
    如果你想改变.minecraft文件夹的路径,开启“游戏目录”选项。然后选择.minecraft文件夹的路径。你也可以通过点击绿色箭头按钮“前往文件夹”来打开.minecraft 文件夹。
    *
    如果你开启“快照”,会自动创建一个叫做“最新快照”的配置。
    *
    你可以手动设置日志配置(详见wiki.vg上的调试文章)。

    命令行用法[编辑 | 编辑源代码]
    从2.1.1432开始,启动器有9个可用的命令行选项:
    *
    –clean - 此选项从工作目录中删除game和runtime文件夹,包括其里面的文件。
    *
    –launcherui
    *
    –workDir - 此选项后接(相对或绝对)路径,将更改.minecraft文件夹的位置(和/或名称)。
    *
    –nativeLauncherVersion
    *
    –tmpDir - 此选项后接(相对或绝对)路径,将更改tmp文件夹的位置(和/或名称)。
    *
    –lockDir
    *
    –winTen - 此选项添加了对Windows 10的支持。由于启动器现在完全支持Windows10,所以这个选项是不必要的,似乎没有任何效果。
    *
    –proxyHost
    *
    –proxyPort

    可以使用–workDir选项创建游戏的便携式安装。例如,可以使用–workDir .(或–workDir=.)使启动程序使用当前目录(无论调用什么当前文件夹)。历史[编辑 | 编辑源代码]
    Java版(Alpha)
    v1.0.0
    最初版本。在这个版本里,用户可以选择当前版本和Infdev版本。
    当第一次运行客户端时,需要一个网络连接来检查更新,之后就会支持离线游戏了。
    允许使用命令行参数启动游戏。使用格式:java -cp Minecraft.jar net.minecraft.LauncherFrame 用户名 密码 将会允许在不加入到服务器的情况下进行登录,当格式为 java -cp minecraft.jar net.minecraft.LauncherFrame 用户名 密码 serveraddress:portnumber 就会允许加入到一个服务器。
    v1.2.2
    命令行参数格式改变。
    Java版(Beta)
    1.3
    发布于2011年2月21日。[5]
    现在使用新的 Minecraft Logo。
    添加通过命令行参数自动登录到游戏的能力。
    (客户端/启动器更新)添加官方链接、社区链接和 Twitter 链接。
    添加小更新系统,这个系统只会更新已更改的文件、引导用户进行更新、允许使用 HTTPS 登录来使用更安全的连接、以及提供用户界面的改进。一个暗中进行的技术性预览已由 Notch 在2011年2月18日发布。[6]
    连接到 Minecraft 安装目录,以方便访问。
    在 Options 对话框下面添加 Force Update 按钮。
    启动器支持在程序内通过叫 MCUpdate 的 Tumblr 博客查看更新日志,并且支持命令行参数。[7]
    Java版
    1.2.1
    为 Mac OS X 用户适当选择64位 Java 安装。[8]
    1.3.2
    为未付费用户添加启动演示模式的能力。
    1.6.1
    13w16a
    加入了新启动器。查看下面的启动器历史。Minecraft启动器[编辑 | 编辑源代码]
    主条目:启动器版本记录
    启动器版本
    发布日期
    更新详情
    2.1.5560
    2.1.5559
    2.1.5558
    2019年7月3日
    主条目:启动器2.1.55xx
    2.1.5478
    2.1.5477
    2.1.5476
    2019年6月28日
    主条目:启动器2.1.547x
    2.1.5410
    2019年6月26日
    主条目:启动器2.1.5410
    2.1.5411-beta
    2019年6月26日
    主条目:启动器2.1.5411-beta
    2.1.5387
    2.1.5386
    2.1.5385
    2019年6月26日
    主条目:启动器2.1.538x
    2.1.5379
    2.1.5380
    2.1.5381
    2019年6月25日
    主条目:启动器2.1.53xx
    2.1.5373
    2.1.537x
    2.1.537x
    2019年6月25日
    主条目:启动器2.1.537x
    2.1.5322
    2.1.5321
    2.1.5320
    2019年6月25日
    主条目:启动器2.1.532x
    2.1.5239
    2.1.5238
    2.1.5237
    2019年6月24日
    主条目:启动器2.1.523x
    2.1.5197
    2.1.5196
    2.1.5195
    2019年6月20日
    主条目:启动器2.1.519x
    2.1.5129
    2.1.5128
    2.1.5127[9]
    2019年6月19日
    主条目:启动器2.1.512x
    2.1.5071
    2.1.5070
    2.1.5069
    2019年6月18日
    *
    更新翻译。

    漏洞修复

    2.1.5000
    2.1.4999
    2.1.4998
    2019年6月17日
    *
    更新翻译。[12]

    漏洞修复

    2.1.4976
    2.1.4975
    2.1.4974
    2019年6月14日
    *
    现在的启动器侧边栏上面有标签来选择要玩的游戏,为发布Minecraft Dungeons做准备。
    *
    目前只有Java版可以在这里启动。
    *
    “新闻”选项卡现在位于此侧边栏中。
    *
    添加了“补丁说明”选项卡,显示最新主要版本的变更日志。
    *
    重新设计了启动器的样式。
    *
    启动器现在默认为984×600px,而不是600×600px。
    *
    已将“启动选项”选项卡重命名为“配置”。
    *
    启动器版本信息现在位于设置菜单中,而不是在单击左下角显示的版本号时显示。

    2.1.3677
    2.1.3676
    2.1.3674
    2019年4月23日
    *
    用户名和密码字段现在支持键盘导航。
    *
    现在可以通过在任何可以看到“开始游戏”按钮的屏幕上按↵ Enter来启动游戏。
    *
    现在可以通过在设置页面中启用切换或在启动器中的任意位置按Ctrl+B,为登录状态和结果启用声音提示。
    *
    为哈萨克语提供支持。
    *
    默认启动选项从-Xmx1G更改为-Xmx2G。

    2.1.3610-beta
    2.1.3609-beta
    2.1.3608-beta
    2019年4月12日
    *
    未知

    2.1.3514-beta
    2.1.3513-beta
    2.1.3512-beta
    2019年4月9日
    *
    用户名和密码字段现在支持键盘导航。[13]
    *
    现在可以通过在任何可以看到“开始游戏”按钮的屏幕上按Enter来启动游戏。
    *
    现在可以为登录状态和结果启用声音提示。

    2.1.2496-beta
    2.1.2495-beta
    2.1.2494-beta
    2019年2月21日
    *
    新的下载系统,应该提高下载的可靠性和速度。[14]

    2.1.2482
    2.1.2481
    2.1.2480
    2019年2月21日
    *
    修复了.minecraft文件夹是符号链接时启动器更新程序失败的问题。
    *
    添加了一个启动器在Mac上启动失败时重新验证其文件的功能。
    *
    修正了如果YouTube没有响应,启动期间启动器停止运行的问题。
    *
    更新翻译。

    2.1.2474
    2.1.2473
    2.1.2472
    2019年2月18日
    *
    默认安装名称现在是“Minecraft Launcher”。
    *
    未来的启动程序更新将更小,以更快地下载和安装。
    *
    现在在设置页面中有一个“beta版本”切换,可以自动获取和运行启动器的beta版本。
    *
    现在,启动程序将显示一个新的启动程序版本的通知,即使它们在启动程序已经运行时释放。
    *
    进度条现在在“准备”阶段正确更新。
    *
    在多核机器上,“准备”阶段的速度得到了提高。
    *
    声音现在可以在1.6之前的Minecraft版本中使用。
    *
    日志窗口已被改写,现在应该更新得更快。
    *
    世界语现在是一种受支持的语言。
    *
    版本信息现在在版本页面上显示“引导”部分的正确值。

    漏洞修复

    2.1.2468-beta
    2.1.2467-beta
    2.1.2466-beta
    2019年2月14日
    *
    进度条现在可以在“准备”阶段正确更新[15]
    *
    多核机器的“准备”阶段的速度得到了提高
    *
    修复了导致游戏启动失败的错误
    *
    修复了在任何配置中更改游戏目录时弹出的错误
    *
    修复了启动器更新进度条不能在mac上运行
    *
    修复了1.6之前的Minecraft版本无效的声音

    2.1.2366-beta
    2.1.2365-beta
    2.1.2364-beta
    2019年2月11日
    *
    修复了当磁盘上没有launcher_profiles.json文件时导致启动器软锁的错误。
    *
    启动器现在将显示新启动器版本的通知,即使它们在启动器已经运行时发布。

    漏洞修复

    2.1.2358-beta
    2019年2月8日
    *
    未知

    2.1.2350-beta
    2019年2月7日

    漏洞修复

    2.1.2339-beta
    2.1.2338-beta
    2.1.2337-beta
    2019年2月6日

    漏洞修复

    2.1.2033-beta
    2.1.2032-beta
    2.1.2031-beta
    2018年12月18日
    *
    未知

    2.1.2024-beta
    2.1.2023-beta
    2.1.2024-beta
    2018年12月14日

    漏洞修复

    2.1.1911-beta
    2.1.1910-beta
    2.1.1909-beta
    2018年12月7日
    *
    重新构造代码

    2.1.1462
    2018年10月23日

    漏洞修复

    2.1.1432
    2.1.1433
    2.1.1431
    2018年9月26日
    *
    为活动组织者添加了Kiosk模式,它移除了注销/帐户信息以保持用户登录。[16]

    1.6.91
    未知
    *
    未知

    2.1.1351 2.1.1350
    2.1.1349
    2018年6月26日

    漏洞修复

    2.1.1218 2.1.1217
    2.1.1216
    2018年6月28日
    *
    添加按名称或上次游戏时间排列档案的选项。
    *
    在档案旁加入“复制”按钮。

    漏洞修复

    2.1.1144
    2018年6月21日
    *
    MCL-9319 – 停留或退出游戏导致启动器崩溃
    *
    其他未知更改

    2.1.1143
    2018年6月21日

    漏洞修复
    *
    其他未知更改

    2.0.1051(Mac OS)
    2018年5月8日
    *
    未知

    2.0.1051(Windows)
    2018年5月8日
    *
    未知

    2.0.1049(Windows)
    2018年5月8日
    *
    修复漏洞

    	* 
    

    MCL-8432 – 在Windows上使用“忘记密码”不会在浏览器中打开该链接
    *
    MCL-9178 – “需要帮助?” 在外观选项的链接不起作用

    1.6.89-j
    2018年5月8日
    *
    未知

    1.6.84-j
    2017年10月26日
    *
    未知

    2.0.1007-stage(macOS)
    2017年10月25日
    *
    未知

    2.0.1006-stage (Windows)
    2017年10月25日
    *
    未知

    2.0.1005(Linux)
    2017年10月25日
    *
    在版本json中改为支持arguments块,取代minecraftArguments模板字符串。

    2.0.1004(macOS)
    2017年10月25日
    *
    在版本json中改为支持arguments块,取代minecraftArguments模板字符串。

    2.0.1003
    2017年10月25日
    *
    修复启动含Mod游戏的启动问题。[17]

    1.6.82-j
    2017年10月25日
    *
    在版本json中改为支持arguments块,取代minecraftArguments模板字符串。

    2.0.995
    2017年10月25日
    *
    在版本json中改为支持arguments块,取代minecraftArguments模板字符串。

    1.6.81-stage
    2017年10月25日
    *
    未知

    1.6.79-stage
    2017年6月13日
    *
    未知

    2.0.935(macOS)
    2017年6月13日
    *
    未知

    2.0.934
    2017年6月13日
    *
    未知

    2.0.932-stage
    2017年6月13日
    *
    未知

    2.0.895
    2017年5月30日
    *
    新的翻译。修复了“准备”屏幕的滞留崩溃。[18]

    2.0.847
    2017年4月10日
    *
    未知

    2.0.834 (macOS)
    2017年3月10日
    *
    未知

    2.0.833
    2017年3月10日
    *
    未知

    2.0.806
    2017年2月9日
    *
    未知

    2.0.774-stage
    2017年2月8日
    *
    未知

    2.0.760-stage
    2017年2月3日
    *
    未知

    2.0.757-stage
    2017年2月3日
    *
    未知

    2.0.726-stage
    2017年2月1日
    *
    修复了一些关于更新进程的漏洞。

    2.0.710-stage
    2017年1月31日
    *
    修复一些关于Mod兼容性的一些漏洞

    2.0.700-stage
    2017年1月31日
    *
    新的启动器,所有玩家都会在未来两周内获得更新。

    1.6.76
    2017年1月30日
    *
    启动器现在可以在接下来的14天后更新到2.0版本。

    2.0.673-stage
    2017年1月27日
    *
    未知

    1.6.73
    2017年1月26日
    *
    未知

    2.0.663-stage
    2017年1月25日
    *
    再也不会有安全弹出了 。

    2.0.581-stage
    2017年1月18日
    *
    加入了一个启动器版本信息标签,支持Linux

    2.0.580-stage(macOS)
    2017年1月18日
    *
    加入了一个启动器版本信息标签

    2.0.511-stage(macOS)
    2017年1月3日
    *
    将字体由Minecraft默认更改至Segoe UI。

    2.0.510-stage
    2017年1月3日
    *
    将字体由Minecraft默认更改至Segoe UI。
    *
    修复了无论如何,解析度总是2304×1202的漏洞

    2.0.497-stage
    2016年12月29日
    *
    添加了更多语言

    2.0.490-stage
    2016年12月27日
    *
    未知

    2.0.465-stage(macOS)
    2016年12月8日
    *
    未知

    2.0.464-stage
    2016年12月8日
    *
    未知

    2.0.455-stage
    2016年12月7日
    *
    未知

    2.0.447-stage
    2016年12月6日
    *
    修正了启动 minecraft.jar 除“1.11新版本”或更低版本的崩溃。

    2.0.429-stage
    2016年12月1日
    *
    未知

    2.0.425-stage
    2016年11月30日
    *
    未知

    2.0.24-stage
    2016年11月29日
    *
    未知

    2.0.414-stage
    2016年11月28日
    *
    修复了启动器可能卡在“加载中”的漏洞。[19]

    2.0.387-stage
    2016年11月25日
    *
    添加了语言选择

    1.6.70
    2016年11月17日
    *
    未知

    2.0.320-stage
    2016年11月4日
    *
    未知

    2.0.282-stage
    2016年11月2日[20]
    *
    现在支持同时运行多个Minecraft游戏
    *
    现在可以在游戏运行时不关闭启动器
    *
    现在支持上传”launcher_profiles.json”,在迁移数据之前设置新的启动器
    *
    启动器选项简写
    *
    在列表的顶部,按钮添加了一个新的启动选项
    *
    “保持启动器启动” 和 “显示游戏日志” 可以单独进行设置
    *
    修复多个漏洞:

    	* 
    

    固定运行修改版本
    *
    修正分辨率设置的失效问题
    *
    修正打开游戏目录会发出错误消息,即使游戏在运行
    *
    在输入字段中按“delete”不再移除该行的其他部分
    *
    在新闻页面上按Tab键可以让新闻停止轮播
    *
    修正了有时在游戏关闭导致的崩溃
    *
    选择输入鼠标和键盘上按Backspace键可以正常的删除输入
    *
    当你点击版本信息页面不再选择所有文本

    1.6.69
    2016年10月26日
    *
    未知

    2.0.164-stage[21]
    2016年10月26日
    *
    新启动器为最初的 Windows 和 MacOS 迭代测试
    *
    运行本地应用程序不再需要Java
    *
    重新设计接口

    1.6.66
    2016年10月24日
    *
    现在当玩家的配置文件已在新的启动器打开时会警告玩家。

    1.6.61
    2016年3月3日
    *
    游戏会话ID(Game Session ID)现在在启动游戏时的游戏输出栏中被隐藏,显示为Session ID is

    1.6.59
    2016年2月25日
    *
    未知

    1.6.57
    2016年2月24日
    *
    未知

    1.6.51
    2016年2月4日
    *
    未知

    1.6.48
    2015年10月9日
    *
    未知

    1.6.44
    2015年9月11日
    *
    添加关于新OSX安装器的信息(仅在OSX显示)

    1.6.19
    2015年7月24日
    *
    添加Windows 10支持

    1.6.13
    2015年7月1日
    *
    现在启动器会在游戏目录下创建“server-resource-packs”文件夹

    1.6.11
    2015年1月30日
    *
    自动安装Java 8[22]

    1.5.5
    2014年12月16日
    *
    未知

    1.5.4
    2014年12月12日
    *
    添加引导程序
    *
    使用Mojang自带Java而非系统Java启动游戏

    1.5.3
    2014年9月1日
    *
    未知

    1.5.2
    2014年7月29日
    *
    现在用单个每次游戏启动时的Game Output选项卡

    1.5.1
    2014年7月29日
    *
    修复启动器卡在加载界面的问题[23]

    1.5
    2014年7月28日
    *
    Development Console选项卡被重命名为Launcher Log
    *
    你现在能同时运行多个Minecraft,要求用不同账号
    *
    如果Minecraft已经被打开,Play按钮会改成Already Playing…
    *
    添加了新选项卡Game Output (你的用户名),在你打开游戏后出现

    1.4.7
    2014年7月25日
    *
    在打开游戏前预先准备库文件

    1.4.6
    2014年7月25日
    *
    在资料编辑器中添加了一些命令行
    *
    添加了版本继承[24]

    1.4.5
    2014年7月25日
    *
    修复MCL-2444 - 改变Event Dispatch Thread上的游戏启动
    *
    添加“Switch users”按钮以使切换用户更方便

    1.4.4
    2014年7月19日
    *
    修复MCL-2494 – 启动器1.4.2中可能的崩溃?

    1.4.2
    2014年5月2日
    *
    显示下载进度条
    *
    修复MCL-2350 – 内存占用渐渐升高
    *
    移除按钮“Local Version Editor (NYI)”
    *
    自动清理无用库

    1.3.11
    2014年3月12日
    *
    更新日志网页的网页框架现在尽可能使用JavaFX
    *
    档案资料现在以字母表顺序排列

    1.3.10
    2014年1月23日
    *
    库文件现在使用SHA-1验证

    1.3.9
    2014年1月14日
    *
    更新漏洞追踪器链接

    1.3.8
    2014年1月8日
    *
    在“Play Demo”按钮下为试玩账号添加“(Why can I only play demo?)”链接,点击会进入这里。

    1.3.7
    2013年12月12日
    *
    未知

    1.3.6
    2013年12月5日
    *
    修复MCL-1895 – 无法离线玩Minecraft 1.3.5,启动时世界崩溃

    1.3.5
    2013年12月4日
    *
    使用新的Assets Management System重新安排库文件夹[25]

    1.3.4
    2013年11月26日
    *
    下载大文件会更快[26]

    1.3.3
    2013年11月20日
    *
    (有可能)绑定Mojang与Twitch账号[27]

    1.3.2
    2013年11月8日
    *
    添加完成工作的时间统计
    *
    更快的资源下载[28]

    1.3.1
    2013年10月29日
    *
    速度提升
    *
    在版本列表标签弹出基本只读
    *
    其他选项的修正和移除

    1.2.8
    2013年10月25日‌[来源请求]
    *
    未知

    1.2.7
    2013年10月18日
    *
    在选项配置新增了一个打开游戏目录的按钮。

    1.2.6
    2013年10月17日
    *
    未知

    1.2.5
    2013年9月23日
    *
    在点击“Play”之后,不再显示开发人员控制台。

    1.2.4
    2013年9月19日
    *
    未知

    1.2.3[29]
    2013年9月12日
    *
    你现在可以使用启动器从任何地方登出 (MCL-1270)

    1.2.2[30]
    2013年9月3日
    *
    修复 (MCL-1461) 使启动器长时间地加载

    1.2.1(Files uploaded)[31]
    2013年8月6日
    *
    5个旧的Minecraft版本,从Classic到Pre-classic已经被推送到启动器

    1.2.1(Files uploaded)[32][33]
    2013年8月6日
    *
    新增Alpha版本

    1.2.1
    2013年8月2日
    *
    新增一个关于使用Beta, Alpha, 和快照版本的警告

    1.2
    2013年8月1日
    *
    新增"Time Machine" 功能来使用Beta版本.

    	* 
    

    已包括 Alpha 的一个选项,但版本仍未开放下载。
    *
    同时允许玩家游玩 1.2.5-1.4.7 版本。

    1.1.4
    2013年7月31日
    *
    一些小的文本更新

    1.1.3[34]
    2013年7月27日
    *
    修复在Intel HDXXXX芯片下的低帧率问题

    1.1.2
    2013年7月22日
    *
    修复 MCL-1241 - 在1.1.1中只能在离线模式下启动游戏

    1.1.1
    2013年7月19日
    *
    新的启动器界面以及登录界面
    *
    启动器现在会在游戏窗口打开后自动关闭

    1.0.10
    2013年7月12日
    *
    更好的Hopper支持
    *
    客户端崩溃会被标记为公开的

    	* 
    

    目前还未为这些事做任何东西
    *
    添加了一个选项到Profile来禁用Hopper支持
    *
    只有在Hopper被关闭或启动器无法连接到Hopper时会直接报告到bug追踪系统

    	* 
    

    Hopper 不会发送崩溃报告到bug追踪系统如果游戏打了Mod

    1.0.9
    2013年7月10日
    *
    添加新的崩溃报告系统支持, Hopper[35]

    	* 
    

    任何客户端崩溃都会自动提交崩溃报告

    1.0.8 OS X(Re-upload)[36]
    2013年7月9日
    *
    修复启动器 无法在OS X 10.5.8 (Leopard)上运行1.6.2

    1.0.8 OS X(Re-upload)[37]
    2013年7月8日
    *
    修复启动器 无法在OS X 10.5.8 (Leopard)上运行1.6.2

    1.0.8
    2013年7月2日
    *
    启动器现在拥有高清图标‌[来源请求]
    *
    Mac OS X 10.5.8 用户在等待 LWJGL 修复期间关闭了 Minecraft 1.6.1 ,然而 1.5.2 没被影响。[38]

    1.0.7
    2013年7月2日
    *
    添加自动关闭 loginbug 的能力。|MCL-590}}

    1.0.6
    2013年7月1日

    修复漏洞:
    *
    MCL-92 – 启动窗口大小不适合整个GUI
    *
    MCL-227 – Play button 不在窗口中 @ Linux
    *
    MCL-262 – 文本不适合窗口
    *
    MCL-287 – 启动器界面限制了外观,不可以选择版本 - 不能进入选项卡
    *
    MCL-596 – 新的Mac启动器中的不正确版本
    *
    MCL-696 – 没有在“Edit Profile”中见到改变内存的选项。

    1.0.5
    2013年7月1日
    *
    Profile Editor中新增’snapshot’设置, 启用/禁用快照
    *
    ‘Minecraft.exe’(启动器) 已经完成数字签证. (MCL-546)

    1.0.4
    2013年6月28日
    *
    Profile Editor中新增’resolution’设置

    1.0.3
    2013年6月27日

    修复漏洞:
    *
    MCL-587 – 未付费游戏可以游玩无限制版游戏。
    *
    MCL-600 – 启动器在你使用用户名而非邮箱登录时给出错误的提示信息

    1.0.2
    2013年6月27日
    *
    未知

    1.0.1
    2013年6月26日
    *
    Yggdrasil 验证恢复

    	* 
    

    修复 MCL-568 – 迁移账户 - 不能在 1.0.1 启动器中登录 1.6 预发布版。

    1.0.0
    2013年6月26日
    *
    启动器降级到1.0.0
    *
    因为登录错误而禁用Yggdrasil

    1.0.1
    2013年6月26日
    *
    启用Yggdrasil(一个新的验证系统)
    *
    更加安全且更多功能

    1.0
    2013年6月25日
    *
    未知

    0.9.5
    2013年6月18日
    *
    未知

    0.9.4
    2013年6月18日
    *
    在Profile Selection Panel中新增"New Profile"和"Edit Profile"按钮

    0.9.3
    2013年6月14日
    *
    未知

    0.9.2
    2013年6月13日
    *
    未知

    0.9.1
    2013年6月10日
    *
    Fixed: MCL-412 – OS X: Exception in thread “main” java.lang.NoClassDefFoundError: net/minecraft/client/main/Main

    0.9
    2013年6月10日
    *
    现在拥有了Profile Editor选项卡.

    	* 
    

    通过双击你的Profile并且在下拉列表中修改版本来选择游戏版本
    *
    改变 Version Selector 区域。

    0.8.3
    2013年6月7日
    *
    未知

    0.8.2
    2013年5月27日
    *
    未知

    0.8.1
    2013年5月21日
    *
    当选择一个快照版本时,客户端窗口使用工作台的图标作为主窗口的图标;启动器窗口仍然使用草方块图标。

    	* 
    

    在 Windows 上,使用默认 Java 图标来选择正式版本。

    0.8
    2013年5月20日
    *
    未知

    0.7.2
    2013年5月15日
    *
    未知

    0.7
    2013年5月13日
    *
    启动器降级到0.7

    0.7.1
    2013年5月4日
    *
    未知

    0.7
    2013年5月2日
    *
    未知

    0.6
    2013年4月25日
    *
    未知

    0.5
    2013年4月23日
    *
    在版本选择中加入了Minecraft 1.5.1

    0.4
    2013年4月23日
    *
    重启崩溃报告

    0.3
    2013年4月22日
    *
    添加Local Version Editor (NYI)选项卡
    *
    添加检查服务器状态的窗口
    *
    修复小漏洞

    0.2
    2013年4月19日
    *
    添加Development Console选项卡
    *
    修复游戏启动的问题

    0.1
    2013年4月18日
    *
    .minecraft目录结构改变:

    	* 
    

    “assets”文件夹:存储语言文件和声音文件

    		* 
    

    所有的音乐唱片文件都用.ogg格式取代了.mus格式
    *
    “library”文件夹:存储Java库文件,比如LWJGL和jinput.jar
    *
    “versions”文件夹:存储每个版本的“versions.json”(元数据)和minecraft.jar的文件夹(名称是其版本号,比如13w16a是“versions/13w16a/13w16a.jar”)
    *
    启动器是一个可执行文件.

    画廊[编辑 | 编辑源代码]

    这个页面需要添加多个图像。
    在文章中添加图像后,请移除此通知。版本记录[编辑 | 编辑源代码]

    第一个启动器。

    第二个启动器。你可以看见旧的 Minecraft logo。

    第三个启动器。

    第四个启动器。

    第五个启动器,版本号1.2。

    第六个启动器,版本号2.0。

    第七个,也是当前的启动器。2010-2016[编辑 | 编辑源代码]

    启动器启动后的Launcher Log标签。

    Local Version Editor (NYI) 标签。

    开发版启动器版本过旧时显示的错误信息

    使用2.0版启动器后打开旧版启动器时显示的错误信息2016-2019[编辑 | 编辑源代码]

    启动器自带的个人档案头像集。

    处于离线模式中的启动器

    帮助页面

    游戏崩溃

    当已经运行了一个Minecraft,则启动器会警告你将要运行另一个Minecraft

    皮肤设置2019至今[编辑 | 编辑源代码]

    启动器的新闻标签。

    启动器的"Java版"标签。

    启动器登录界面。

    默认配置。

    正在进行自定义配置。

    启动器的"关于"界面。背景图片[编辑 | 编辑源代码]

    登录账号时的背景图片。

    Java版启动器的背景图片。

    Minecraft Dungeons的背景图片。

    付费购买Minecraft Dungeons后显示的背景图片。你知道吗[编辑 | 编辑源代码]

    * 
    

    在2016-19启动器左上角可以找到一个隐隐可见的按钮,它会随机显示为苦力怕脸或耸肩的颜文字¯_(ツ)_/¯。它在点击时会闪烁白色,不过根本没有用处。这在启动器的2019重新设计中被移除了。

    	* 
    

    在启动器的测试阶段,苦力怕的脸以及耸肩被用于语言选择菜单,当添加一个地球而不是简单地向下移动时,这作为一个彩蛋保存。
    *
    将鼠标悬停在2016-19启动器中的“开始”按钮上足够长的时间将导致随机生物出现在窗口的右侧。

    参考[编辑 | 编辑源代码]

    1. 
    

    ↑ https://twitter.com/Dinnerbone/status/1037686466250530816
    2.
    ↑ https://twitter.com/Dinnerbone/status/344164561701724160
    3.
    ↑ https://twitter.com/Dinnerbone/status/364762596387205120
    4.
    ↑ https://help.mojang.com/customer/portal/articles/1475923-changing-game-versions
    5.
    ↑ http://notch.tumblr.com/post/3428176687/server-downtime-and-a-new-launcher
    6.
    ↑ https://twitter.com/notch/status/38621269331025921
    7.
    ↑ http://mcupdate.tumblr.com/post/3427294253/welcome-to-the-new-minecraft-launcher
    8.
    ↑ http://www.mojang.com/2012/03/minecraft-1-2-is-out/
    9.
    ↑ https://twitter.com/slicedlime/status/1141367417660215299
    10.
    ↑ https://twitter.com/slicedlime/status/1141006123383869440
    11.
    ↑ https://twitter.com/slicedlime/status/1141006124650569731
    12.
    ↑ https://twitter.com/slicedlime/status/1140572459034402817
    13.
    ↑ https://twitter.com/slicedlime/status/1115610896242495488
    14.
    ↑ https://twitter.com/slicedlime/status/1098875758607519744
    15.
    ↑ “A new beta version of the Minecraft Launcher is rolling out.” – @slicedlime,2019年2月14日
    16.
    ↑ “Event organizers: try out Kiosk Mode in the Java Minecraft launcher! This removes logout/account info. Keep users logged into that station!” – @Marc_IRL,2018年9月26日
    17.
    ↑ https://twitter.com/Dinnerbone/status/408246271921901568‌[需要验证]
    18.
    ↑ “A new version of the Minecraft Launcher will be going out shortly, it has new translations & a fix for those stuck/crashing on “Preparing”” – @Dinnerbone,2017年5月30日
    19.
    ↑ https://twitter.com/Dinnerbone/status/803235460386537472
    20.
    ↑ https://www.reddit.com/r/Minecraft/comments/5apvpl/help_us_test_the_new_minecraft_launcher_todays/?st=iv1jq8z1&sh=7908cfe7
    21.
    ↑ https://www.reddit.com/r/Minecraft/comments/59b7m0/help_us_test_the_new_minecraft_launcher_check_the/
    22.
    ↑ https://twitter.com/Dinnerbone/status/561096640086700032
    23.
    ↑ https://twitter.com/Dinnerbone/status/494220782244208640
    24.
    ↑ https://twitter.com/Dinnerbone/status/492715318645882880
    25.
    ↑ https://twitter.com/Dinnerbone/status/408246271921901568
    26.
    ↑ https://twitter.com/Dinnerbone/status/405366855785021440
    27.
    ↑ https://twitter.com/Dinnerbone/status/403111179859812352
    28.
    ↑ https://twitter.com/Dinnerbone/status/402434001451098112
    29.
    ↑ https://twitter.com/Marc_IRL/status/378280823180361729
    30.
    ↑ https://twitter.com/Dinnerbone/status/374887108932288512
    31.
    ↑ https://twitter.com/Dinnerbone/status/365040968644296705
    32.
    ↑ https://twitter.com/Dinnerbone/status/364699262233223169
    33.
    ↑ https://twitter.com/_grum/status/364699271708151808
    34.
    ↑ https://twitter.com/_grum/status/361126093777936384
    35.
    ↑ http://hopper.minecraft.net/
    36.
    ↑ https://twitter.com/Dinnerbone/status/354595929925496832
    37.
    ↑ https://twitter.com/Dinnerbone/status/354351963288248321
    38.
    ↑ https://twitter.com/Dinnerbone/status/352109843731070976

    另见[编辑 | 编辑源代码]
    *
    辅助程序与编辑器
    *
    教程/编写启动器

    Java版

    版本
    演示版 地点 PC Gamer演示版(Beta 1.3)

    开发周期

    版本历史

    Pre-classic
    Classic
    多人测试 生存测试
    Indev Infdev
    Alpha Beta
    正式版本
    开发版本
    计划版本
    提及特性 天域
    未使用的特性
    已移除的特性 彩蛋

    技术
    已知漏洞 启动器 Minecraft API 硬件 需求 性能 方块实体 命令 函数 崩溃 数据值 Classic Indev 扁平化前 数据版本 调试界面 样式代码 键控代码 启动器 version manifest.json launcher profiles.json .minecraft client.jar client.json 命名空间ID options.txt 协议版本 截屏 种子 统计 刻 出生点区块 坐标
    开发资源
    Anvil文件格式 区块格式 命令存储格式 结构生成格式 世界格式 战利品表 地图(物品)格式 模型 NBT格式 Player格式 Raids.dat格式 区域文件格式 结构方块文件格式 Schematic文件格式 记分板格式 服务器列表格式 sounds.json 字幕 villages格式
    过时开发资源
    Classic世界格式 Classic服务器协议 Indev世界格式 Alpha世界格式 server_level.dat

    多人游戏
    服务器 Minecraft Realms 服务器列表 Server.properties 服务器需求

    游戏订制
    皮肤 披风 资源包 数据包 Mods 定制服务器 辅助程序与编辑器

    分类: 需要验证待更新条目等待移动来源请求需要图像的页面Java版独有游戏内容游戏术语

    人物:

    游戏:
    迷你方块

    一 款益智休闲游戏

    我的世界安卓版

    世界上第一款沙盘游戏

    物品:

    玩法:

    高级:

    展开全文
  • 最简化的超声波测距程序,通俗易懂,是初学者学习的最佳资源
  • 在《windows核心编程》中的1.2节发现了自己以前未曾使用过的工具MC.exe(message compiler,vs2010中已集成),经过查找资料得知此工具可以利用mc文件生成消息资源(包括.h文件,.rc资源文件以及bin文件)我们可以将此...

    在《windows核心编程》中的1.2节发现了自己以前未曾使用过的工具MC.exe(message compiler,vs2010中已集成),经过查找资料得知此工具可以利用mc文件生成消息资源(包括.h文件,.rc资源文件以及bin文件)我们可以将此消息资源添加到自己创建的dll中,这样当在程序中调用此模块出现错误时我们就可以使用GetLastError获得错误代码了,当然也可以利用FormatMessage获得相关的错误消息文本。

    在具体讲mc文件的编写和编译之前,有必要讲一下window函数的错误处理。我们在应用程序中调用windows函数时难免会出现各种错误(比如打开文件时路径下并没发现所指定的文件)等等,这时我们可以使用getlasterror()获得错误代码,当然由于windows中的错误代码太多了(win32中已经从0排到了11031),因此除了常见的错误代码我们几乎很难通过错误代码直接联想到具体的错误信息,这时我们可以使用FormatMessage()函数获取错误文本信息。

    我们可以在winerror.h中找到错误代码,当然我们也可以创建自己的错误代码,但需要按照错误代码的标准格式来定义错误代码,错误代码是一个32位的数字,下表描述了其中的各个字段:

    31-30 29 28 27-16 15-0
    内容 严重性 ms/客户 reserved facility代码 异常代码
    含义

    0=成功

    1=信息提示

    2=警告

    3=错误

    0=ms定义的错误代码

    1=客户定义的错误代码

    必须为0 钱256个由ms保留 ms/客户定义的代码

    注:表中ms是指microsoft

    那么对于我们自己编写的模块(如dll),怎么实现此功能呢,我们如何定义自己的错误代码呢,这时mc的功能就体现出来了。

    关于mc文件的格式,大家可以去网上找,此文件中的内容主要包括:

                1、注释:以分号开头,然后后面接注释文字,为了在生成的*.h文件中也以注释状态出现,勿必在分号后面加上一个//。同样,对多行注释:每行都以分号开头,但是为了同样的目的,建议注释的开始在分号后面加上/*,结束时在分号后加上*/

               2、头:一个消息文本文件包含一个头,头部定义一些名字标识以及语言标识供后面消息定义使用它在定义名字和语言识别。一个头包括0个或多个下面的声明:

             MessageIdTypedef=type----用于消息标识定义的类型 注:在*.h文件中可看到此类定义。

             SeverityNames=(name=number[:name])----设置消息码中第31、30位,即Severity部分。

             FacilityNames=(name=number[:name])----设置消息码中27--16位,即Facility部分,

             LanguageNames=(name=number:filename)----设置消息所用语言标识,可设置多个语言版本。

             OutputBase=number----生成消息常量数值格式,比如指定16,生成16进制的数,指定10,生成10进制的数等。

               3、消息主体

            消息主体包含以下0个或多个声明,其中MessageId标识一个消息定义的开始,必须存在,Severity和Facility声明是可选的。

            MessageId=[number|+number]----消息序号标识,这项必须要有,但是值是可选的。如果没有指定值,此值等于上一个Facility加上1,如果在指定的值前面带上了一个+号,则用上一个Facility加上此值来生成MessageId。

           Severity=name

           Facility=Application。----在头部声明FacilityNames指定的一个名字,这个声明是可选的。如果没有指定值,则使用在消息定义块中最后指定的那个值。

           SymbolicName=name----一个标识符,在*.h文件中可看到,如#define name ((type)0xnnnnnnnn)。

           OutpubBase={number}----生成消息常量数值格式,比如指定16,生成16进制的数,指定10,生成10进制的数等。

           Language=name----在头部声明LanguageNames指定的一个名字,此项是可选项,如果没有指定值,则使用在消息定义块中最后指定的那个值。

           Message Text----消息文本。

            .(点号) ----消息定义终止符,注:此终止符为英文输入模式下输入,否则使用mc工具进行编译时会提示无终止符的。

          (此部分详细内容可参见  https://blog.csdn.net/s634772208/article/details/46402677?utm_source=copy

     mc文件中的内容也借鉴了文章中的内容,如下:

    ;//***** Sample.mc *****
     
    ;//This is the header section.
     
    MessageIdTypedef=DWORD
     
    SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
        Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
        Warning=0x2:STATUS_SEVERITY_WARNING
        Error=0x3:STATUS_SEVERITY_ERROR
        )
     
     
    FacilityNames=(System=0x0:FACILITY_SYSTEM
        Runtime=0x2:FACILITY_RUNTIME
        Stubs=0x3:FACILITY_STUBS
        Io=0x4:FACILITY_IO_ERROR_CODE
    )
     
    LanguageNames=(English=0x409:MSG00409)
    LanguageNames=(Chinese=0x804:MSG00804)
     
    ; // The following are message definitions.
     
     
    MessageId=0x1
    Severity=Error
    Facility=Runtime
    SymbolicName=MSG_BAD_COMMAND
    Language=English
    You have chosen an incorrect command.
    .
    Language=Chinese
    你选择了一个不正常的命令。
    .
     
    MessageId=0x2
    Severity=Warning
    Facility=Io
    SymbolicName=MSG_BAD_PARM1
    Language=English
    Cannot reconnect to the server. 
    .
    Language=Chinese
    无法连接服务器。
    .
     
    MessageId=0x3
    Severity=Success
    Facility=System
    SymbolicName=MSG_STRIKE_ANY_KEY
    Language=English
    Press any key to continue . . . %0 
    .
    Language=Chinese
    按任意键继续...
    .
     
     
     
    MessageId=0x4
    Severity=Error
    Facility=System
    SymbolicName=MSG_CMD_DELETE
    Language=English
    File %1 contains %2 which is in error 
    .
    Language=Chinese
    文件 %1 包含 %2 r损坏。
    .
     
     
    MessageId=0x5
    Severity=Informational
    Facility=System
    SymbolicName=MSG_RETRYS
    Language=English
    There have been %1!d! attempts with %2!d!%% success%! Disconnect from the server and try again later. 
    .
    Language=Chinese
    未知错误!无法连接服务器,请稍后重试!
    .
    

    将上述内容在记事本中编辑后改名为mcfile.mc(注意将扩展名显示出来并修改)即可,这样我们就有了mc文件。

    然后打开vs2010命令行界面,定位到mc文件所在目录,然后使用mc命令对其进行编译:

    此时可以发现在原来mc文件的目录下多了.h,.rc文件以及两个bin文件(分别对应中文和英文):

     下面创建dll项目,把消息资源文件添加到dll中:

    在vs2010下新建win32项目,在应用程序类型中选择dll,单击“完成”,然后将.h文件和.rc文件添加到项目中(在解决方案管理器中添加即可),注意同时还要添加bin文件(将bin文件拷贝至项目文件目录下即可),build项目,生成dll。至此我们已经生成了包含消息资源文件的dll。下面继续建立项目以测试此dll是否可用。

    建立win32控制台项目,源码如下:

    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    
    #ifdef _UNICODE
    #define COUT wcout
    #else
    #define COUT cout
    #endif
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	DWORD dwError = 0; 
    	DWORD dwLanguageId = MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL ); 
    	//解决问题:wcout输出时显示不了中文	
    	COUT.imbue( std::locale( "chs" ) ); 	
    	HLOCAL lpMsgTextBuf = NULL;
    	COUT << TEXT("输入一个自定义的错误代码(如:3221356545(0xC0020001) ):");	
    	while( cin >> dwError )	
    	{		
    		lpMsgTextBuf = NULL; 		
    		HMODULE ghResDll = LoadLibrary( TEXT("mcdll.dll") );		
    		if ( NULL == ghResDll )		
    		{			
    			COUT << TEXT("加载消息模块失败!") << endl;	
    			return -1;		
    		}  		
    		BOOL bOk = FormatMessage( FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,	
    			                       ghResDll, dwError, dwLanguageId, (LPTSTR)&lpMsgTextBuf, 0, NULL );  	
    		if ( !bOk )		
    		{			
    			COUT << TEXT("error ") << GetLastError() << endl;		
    		} 	
    		if ( NULL != lpMsgTextBuf )		
    		{			
    			cout << (LPTSTR)lpMsgTextBuf << endl;		
    			LocalFree( lpMsgTextBuf );	
    		} 	
    		COUT << TEXT("输入一个自定义的错误代码(如:3221356545(0xC0020001) ):");	
    	}
    
    	
    	return 0;
    }

    build项目生成exe,注意要将生成的dll拷贝至debug目录下。可以输入mcfile.h中定义的错误代码,可以看到屏幕上会显示相应的错误文本信息。说明dll模块成功实现了添加消息资源功能,可以查看错误代码及错误信息。

    -----------------------------------------------------------------------------over------------------------------------------------------------------------------------------

    展开全文
  • CDD_MC33771.rar

    2020-05-18 14:47:42
    复杂驱动Cdd Mc33771C的驱动代码 根据.h的参考配置设置MCU底层接口和 应用层调度时序 自己开发的资源代码---请认真评价
  • 使用Visual Studio自带的MC.exe工具来创建一个消息资源并将其添加到自己的DLL(或.exe)中,从而达到为自己的模块添加错误代码的目的。 相应的文章链接http://blog.csdn.net/s634772208/article/details/46402677
  • 从网络下载的uCOS-II移植代码,经本人亲自测试并修改,在开发板上验证可用。 本资源包含两个工程,一个为MC9S08DZ60,一个为MC9S12XEP100。
  • MC9S12XEP100 本地RAM不够用了怎么办 夏日白云 2019-08-25 17:...利用分页区/全局地址资源 无脑使用large/custom地址模型 在本地地址多变出16K RAM 结束语 前言 你正用这个16位单片机开发着,你对自己写的程序非常有信

    MC9S12XEP100 本地RAM不够用了怎么办

    夏日白云 2019-08-25 17:35:18 732 收藏 11
    分类专栏: 嵌入式开发 codewarrior 文章标签: MC9S12XEP100 飞思卡尔 Codewarrior RAM 单片机
    版权
    文章目录
    前言
    MC9S12XEP100的存储器映射
    解决方案
    优美的代码
    利用分页区/全局地址资源
    无脑使用large/custom地址模型
    在本地地址多变出16K RAM
    结束语
    前言
    你正用这个16位单片机开发着,你对自己写的程序非常有信心,从来没有出过bug(那你真是神),你刚刚分配了一个很大的全局缓冲区,所有使用都如同英文经典教科书般的完美。“这么简单的一个程序,不可能会出错的”,你边想着边点下了编译链接按钮。整个编译链接过程一切顺利,编译完美通过,链接眼看着就最后一点点了,突然:
    纳尼?这是什么鬼?

    这是单片机的RAM不够用了呀老铁!

    MC9S12XEP100的存储器映射
    可能你觉得我也就用了这么点RAM,充其量也就几KB而已,怎么就RAM不够用了?老子在Linux、STM32啥的上面都是动不动给程序分个几MB的变量的。才用这么点就放不下了,这B单片机也太不靠谱了。

    emmmmm 是蛮不靠谱的。但这是16位单片机。不要拿你在32位单片机上被惯出来的乱用内存的垃圾习惯来抱怨。换个角度想,8位、16位这些单片机有限的资源正考验了我们这些程序员的榨取硬件资源的能力,真正考验了我们(一方面)的编程基本功。

    我们先来看看RAM咋就不够用了。

    上图的左边就是9S12XEP100的本地地址映射,CPU一般情况下能直接或说默认访问的就是这块0x0000-0xFFFF的地址区域。我们可以看到,这个地址区域被分别映射为好几种资源。最开头的2K映射到硬件寄存器资源,各种硬件模块、IO控制什么的;然后是EEPROM、RAM和FLASH。

    EEPROM、RAM和FLASH区域中都有一个叫window的区域,这是什么东西呢?

    简单解释:
    如果只有这16位地址的资源的话,我们的总体资源实在太有限了,所以为了能够给我们更多可用的资源,就想了这么一个方法。实际上芯片上的资源是远多于我们可以直接16位寻址的资源的,这些资源被分布在叫做全局地址的存储器映射地址上,可以看到右图给出了全局地址的资源划分,从0x00_0000到0x7F_FFFF。
    各存储器资源的实际大小远大于我们本地这点访问的大小。那为了CPU能在本地地址访问到全局地址的资源,飞思卡尔的解决方案是(其实也可以直接全局地址访问,但这里我们介绍分页访问方法),为每个资源提供一个“窗口”,就是那个window。每个窗口对应一个页寄存器,就是那个RPAGE、EPAGE、PPAGE,然后把全局地址的资源按照窗口的大小,平均分配,然后连续对应到不同的页编号去,通过设置页寄存器为不同的页编号,这段窗口就会联系到对应的全局地址去,而那段没有window这名字的资源其实也对应映射到了某几页上面,一般是资源的最后几个页,只是它是固定映射的。

    随便举个例子,比如全局有20K的RAM资源,按照这个方案,因为RAM窗口大小为4K,所以我们会有5个页,我给它们编号为0xFB到0xFF。然后因为固定的RAM部分有8K,所以实际上这8K映射的是FE和FF的页,而window中,默认的,也就是RPAGE寄存器中默认的会对应FD那一页。

    然后,叫法上,那些固定映射的RAM,我们叫他非分页(non-paged或non-banked)RAM,要通过window访问的自然就是分页RAM了。其他资源对应。注意,window是可以映射到非分页RAM的那几个页的,但是,好像没有什么需求要这么做吧。

    我们打开工程的prm文件就可以很清晰的看到这一点:

    SEGMENTS
    ……
    /* non-paged RAM /
    RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;
    ……
    /
    paged RAM: 0x1000 TO 0x1FFF; addressed through RPAGE /
    RAM_F0 = READ_WRITE DATA_FAR 0xF01000 TO 0xF01FFF;
    RAM_F1 = READ_WRITE DATA_FAR 0xF11000 TO 0xF11FFF;
    RAM_F2 = READ_WRITE DATA_FAR 0xF21000 TO 0xF21FFF;
    RAM_F3 = READ_WRITE DATA_FAR 0xF31000 TO 0xF31FFF;
    RAM_F4 = READ_WRITE DATA_FAR 0xF41000 TO 0xF41FFF;
    RAM_F5 = READ_WRITE DATA_FAR 0xF51000 TO 0xF51FFF;
    RAM_F6 = READ_WRITE DATA_FAR 0xF61000 TO 0xF61FFF;
    RAM_F7 = READ_WRITE DATA_FAR 0xF71000 TO 0xF71FFF;
    RAM_F8 = READ_WRITE DATA_FAR 0xF81000 TO 0xF81FFF;
    RAM_F9 = READ_WRITE DATA_FAR 0xF91000 TO 0xF91FFF;
    RAM_FA = READ_WRITE DATA_FAR 0xFA1000 TO 0xFA1FFF;
    RAM_FB = READ_WRITE DATA_FAR 0xFB1000 TO 0xFB1FFF;
    RAM_FC = READ_WRITE DATA_FAR 0xFC1000 TO 0xFC1FFF;
    RAM_FD = READ_WRITE DATA_FAR 0xFD1000 TO 0xFD1FFF;
    /
    RAM_FE = READ_WRITE 0xFE1000 TO 0xFE1FFF; intentionally not defined: equivalent to RAM: 0x2000…0x2FFF /
    /
    RAM_FF = READ_WRITE 0xFF1000 TO 0xFF1FFF; intentionally not defined: equivalent to RAM: 0x3000…0x3FFF */
    ……
    END

    PLACEMENT
    DEFAULT_RAM /* all variables, the default RAM location /
    INTO RAM;
    ……
    PAGED_RAM INTO /
    when using banked addressing for variable data, make sure to specify
    the option -D__FAR_DATA on the compiler command line */
    RAM_F0, RAM_F1, RAM_F2, RAM_F3, RAM_F4, RAM_F5, RAM_F6, RAM_F7,
    RAM_F8, RAM_F9, RAM_FA, RAM_FB, RAM_FC, RAM_FD;
    ……
    END

    经过这样的解释,这个prm文件大概能看懂了吧。我们可以看到分页RAM的最后两页被注释掉了,后面的注释就说了其直接等于那两段本地地址。

    然后PLACEMENT中,DEFAULT_RAM INTO RAM的意思就是默认的,所有RAM变量会分配到前面定义的RAM这个SEGMENT即段中,这个段的大小只有8K。一些小应用可能够用,但仔细想想,上一个RTOS,除了RTOS自己管理要分配的RAM,一个Task的栈得给他个4、5百K吧。然后堆区域只要你用到了malloc就会分配,按照CW的默认值是2K。如果你有一些通讯的端口,一个通信端口给个几百、1K的缓冲区也不过分吧。算了算,其实真正留给你app用的非分页RAM其实没多少。

    解决方案
    那么我们来看看遇到RAM不够用的情况能够做些什么。

    优美的代码
    首先,也是最重要的,就是你身为程序员最重要的,就是写出优美的代码,用尽量少的资源完成尽量多的事,这是很考验基本功的。基本要考虑到的就是

    优化数据结构与算法:选择正确的数据结构与算法,降低解决任务的时间和空间复杂度,最本质的基本功,这没什么好解释的吧。完成同样一个功能,使用不同的数据结构和算法带来的性能和资源占用可能天差地别。哪怕算法类似,也许只是不同的编写代码方式,最终编译器生成的代码也可能会差异很大,这很考验基本功,要求对计算机系统特别熟悉,没什么好说的,CSAPP、APUE啥的一本本往上怼吧。
    严格评估全局变量大小:比如,缓冲区真的需要1K么,可能1百就够了,不要为了自己方便就乱分配一个特别大的值;每个任务的栈到底需要多少,严格评估下,然后给个安全够用的值,比如uCOS-ii就有提供功能查看栈的使用量,正常运行一段时间后在最大使用量上再加个20%应该就足够安全了,还有很多预分配的资源可能编译时就能确定最多用到几个,那就不要预分配更多了。
    提升复用性:这里当然是着重讲RAM方面的,实际上代码也有很多复用性技巧。
    RAM方面的复用性,我能想到的,比如:
    使用局部变量本身就是一个很好的复用,因为局部变量是直接分配在栈上的,对于平级调用的函数来说,它们相互之间的局部变量空间是复用的,但是得注意不要在局部变量上分配大数组,这样会导致任务栈的使用量暴涨。一般还是把大数组作为全局变量的。
    大数组没法用栈的复用,那怎么办呢,比如,任务A和任务B不会同时工作,那严格评估后可以让A和B使用同一个缓冲区,那缓冲区的占用量直接少了一半;就算有很小的几率A、B同时使用缓冲区,那也可以通过加锁等方法互斥地使用。
    另外,其实动态分配的内存也是很有利于RAM复用的,之前说了,堆默认占了2K的大小,这2K你可得好好利用起来呀,比如临时需要的,或者大小可变的一些实例,就可以多使用动态分配的方式来获取,相当于所有任务都在复用这2KB的RAM。当然,记得好好写代码,别内存泄露了。另,malloc不是线程安全的,记得加锁(我的娘呀,突然想到我之前写的程序完全忘了这一点,赶紧去检查下)。
    暂时想到这些,欢迎补充。
    利用分页区/全局地址资源
    上面是程序员的自我修养,但毕竟16位地址的资源实在是太少了,大点的app还是要用到更多资源的。那一种办法就是用到上面介绍的分页区资源。

    关于怎么把变量定义到分页区以及访问的方法,我之前已经写了很多篇博文了。这里就不赘述了,直接给出几个链接:

    理解S12(X)架构中的地址映射方案
    HCS12X–数据访问(如何在CodeWarrior中转换逻辑地址与全局地址)
    HCS12X–数据定义(如何在CodeWarrior中将数据定义到分页区)
    CodeWarrior的map文件详解

    相信这几篇读完基本你就知道怎么做了。

    简而言之就是

    通过#pragma把变量 声明/定义 到自己想要的位置。
    在声明可见的地方可以直接使用分页区变量,这样编译器会帮你生成正确的访问分页区资源的代码
    在使用指针访问分页区变量时一定要使用扩展的指针。注意函数调用时传参导致的指针的页信息丢失问题,即,如果需要传扩展的指针给函数的话,函数的指针参数也应该是扩展的。
    像将环形缓冲区放到PAGED RAM(、同时也可以放到非分页RAM甚至自己加一点实现还可以用全局地址访问)的需求,我已经直接给出了实现的模块了,感兴趣的可以去看看: https://blog.csdn.net/lin_strong/article/details/88236566。

    无脑使用large/custom地址模型
    之前所说的那些都是当我们使用small或者默认的banked地址模型时,默认访问RAM时使用本地寻址,分配也默认分配到本地地址。而如果你实在搞不过来的,接手了个垃圾程序,就想立即把程序链接通过了,那你其实可以选择使用large或者custom地址模型,好像现在是不让创建工程时使用large,只让选custom,但也差不多。

    在large地址模型下,默认对所有资源的访问,不光是RAM,都会通过全局访问的方式,资源也直接在全局地址上分配,这样就相当于你直接可以使用所有的资源,也不需要像上一条那样仔细分配每一个变量的位置。(实际上我没有使用过large模型,所以可能这段话有误。)

    但是这样生成的程序会大很多,而且运行效率也会慢。因为全局寻址比本地寻址慢,生成的代码也大。

    可能这样弄会方便很多,那你自己看看怎么搞吧,我教不了。

    但是如果第一条做不到的话,就算给再多的资源,也照样会被这糟糕的程序员浪费完。

    在本地地址多变出16K RAM
    各种精打细算的安排怎么分页真是痛苦呀,8K非分页RAM是在是太少了。那再给你16K何如。

    基本原理就是,其实0x4000-0x7FFF这段地址是可以配置映射哪个资源的,通过配置MMCTL1寄存器实现,可以映射的资源如下:

    默认情况下的配置是映射那16K的FLASH,但是其实可以配置成映射RAM。而且你仔细看上图右边,这16K的RAM不属于分页区RAM!等于是把隐藏的16K RAM给调了出来。

    好激动呀!那怎么让这段地址映射RAM呢?最简单的方法,创建新工程时,按如下改一个选项就好:

    然后在引导代码中就会自动帮你配置寄存器,将这段地址映射到16K的RAM去了。

    这个选项做了什么?
    首先,它改了你的编译器、链接器、汇编器选项,如将编译器选项中的

    -MapFlash -D__MAP_FLASH__
    1
    改成了

    -MapRAM -D__MAP_RAM__
    1
    其他的类似,自己可以建个工程看看区别。

    有兴趣的可以到start12.c里看看,后面那个宏定义决定了自动生成的代码怎么设置MMCTL1寄存器。

    然后还在cmd文件夹中的XXXX_Postload.cmd里头加了一句

    HCS12X_MAP4000 RAM
    1
    这样,调试器就知道4000这个地址映射为了RAM。

    然后,它还改了你的prm文件。

    将原本的

    ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF;
    1
    改为了

    RAM_4000 = READ_WRITE DATA_NEAR 0x4000 TO 0x7FFF;
    1
    当然后面的PLACEMENT也对应进行了修改,这样就实现了本地多出来了16K的RAM。

    怎样。这样够用了吧!

    结束语
    这篇文章讲了这么多,其实最本质的还是咱程序员要提高自己的基本功,千万别做那种滥用资源的乐色程序员。

    打铁还需自身硬,共勉。@TOC

    展开全文
  • dsPIC33EP64MC204 的源代码程序,包括系统时钟配置,定时器 ADC, UART, 中断 等外部资源的配置。
  • 具体参照博文https://blog.csdn.net/lin_strong/article/details/80327959,如后续有更新代码或勘误,请直接到博文里查阅,好像CSDN不允许更新/删除资源。其中包含了驱动代码以及示例代码,示例代码包括裸奔程序的...
  • 资源包含大量的源代码,如SPI,CAN,iic协议等,另有飞思卡尔综合实验,LED灯,中断ADC等试验,原来mc9s12xs128所有代码打包放上去的。给需要的同学使用。
  • https://blog.csdn.net/s634772208/article/details/46402677本文主要介绍怎么使用Visual Studio自带的MC.exe工具来创建一个消息资源并将其添加到自己的DLL(或.exe)中,从而达到为自己的模块添加错误代码的目的。...
  • xs128的pwm简介与基本代码,该教程以MC9S12DG128单片机为核心进行讲解,全面阐释该16位单片机资源
  • 在看windows核心编程时,第一章《错误处理》里提到“我们也可以向自己的模块添加错误代码,具体做法是使用Message Compiler(MC.EXE)来创建一个消息资源并将其添加到DLL(或EXE)模块中。”顿时对这句话产生了兴趣...
  • 简单MC SimpleMC宇宙学参数估计代码的个人副本。最新稳定版本所在的原始源位于JoséAlbertoVázquez博士的资料库中: : 在此最新资料库中,我将做一些个人测试和实验,然后再贡献原始资源。 如有任何问题或建议,...
  • 狂神说Vue第13集到第19集的项目代码资源里的子文件夹:p13、p14、p15、p16-p19。用法:用IDEA来open再“npm run dev”就可以用了。视频课:【狂神说Java】Vue最新快速上手教程通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~...
  • 就是我是在做gps定位模块,连接OneNET服务器,现在用的是32最小系统+MC20 在32控制mc20发送AT指令的代码编写上,我实在是头痛,这个东西到底怎么写啊 ,不知道从哪开始写,我在网络上找了很久的资源 有例程但是看不...
  • dm(代码),mc(名称),lv(层级),lx(乡村类别) 110000000000,北京市,1,0 110100000000,市辖区,2,0 110101000000,东城区,3,0 110101001000,东华门街道办事处,4,0 110101001001,多福巷社区居委会,5,111
  • 蓝桥杯比赛 单片机组 第十届国赛赛题目解答(代码加注释)一、题目二、hex文件三、主函数实现四、整个工程文件最后   一、题目   历届的省赛和国赛的题目我已经在前面的文章(点击查看)里给大家分享了(网盘资源...
  • java版Excel文件导入数据库源代码

    热门讨论 2009-05-20 18:57:24
    java版Excel文件导入数据库源代码 servlet容器:tomcat(或者其他) 数据库:oracle(或者其他) 使用框架:jsp+struts1.2 支持字符型/数据型/日期型/CLOB等数据 使用步骤: 1.下载本资源,解压后得到4个文件:...
  • 我们决定将其资源公开发布,并教给它使人们能够更快地开发插件,节省样板代码,从而专注于最重要的事情,将他们的想法付诸实践。 请查看以获得我们使用Foundation的插件的正式列表。 兼容性 我们旨在提供极端兼容...
  • c#获取硬件资源

    2009-11-16 09:55:00
    c#通过WMI获取硬件资源代码: public class GetSystemInfo { private ManagementClass mc; private ManagementObjectCollection moc; public GetSystemInfo() { } public stri
  • 外部资源库的元件给出AS连接,用于在代码中反射,下面伪代码中体现为 “mc_link”。 以下是伪代码: /** * @p_url 外部资源库的url地址 * @p_complete 加载完成的回调函数 */ public function loadAsset(p
  • 这是一个自定义的modpack和资源存储库,由.jar文件编译而成,这些文件已在基于linix的forge minecraft服务器上通过了测试。 我不拥有放入这些文件中的大多数代码,但是需要一个存储库,才能使用Git Clone从linux...
  • C#开源资源

    2008-10-23 10:03:00
    Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。 NKalore是一款编程语言,它扩展了C#允许在.net平台...
  • uchome_happyfarm_mc.sql uchome_happyfarm_nc.sql 数据库文件(如果前缀不是默认的uchome_替换成你的前缀否则农场无法连接调用mysql数据库) 3.在header.htm文件中,搜索“热闹”,并在后面加以下代码 <li><img ...
  • 此摩托车仪表选用了一款飞思卡尔公司生产的HCS12X系列的单片机MC9S12XS128MMA,是HCS12 家族中的一员,由16 位的中央处理单元(HCS12CPU)、128KBFlash、8KB RAM、2KB EEPROM 组成,外设功能以及IO 资源极为丰富,...
  • VRP、WRSN问题求解.zip

    2020-08-10 14:12:30
    VRP问题matlab、python代码资源,以及WRSN问题规划MC路径问题代码
  • mc_subop:=proc(ExpLimit,f_dim,j_rowdim,j_coldim)local eqlhs,num_v,v_name,temp,kk,nn,ii, NumExpr,Remainder,Ftemp,k,n;global F,Fopt,templist;# ************* Set up dimensions# f_dim:=rowdim(F):# j_...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

mc资源代码