⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msvc_objectmodel.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        EntryPointSymbol = option+7;        break;    case 0x033c960: // /HEAP:reserve[,commit]        {            QStringList both = QString(option+6).split(",");            HeapReserveSize = both[0].toLongLong();            if(both.count() == 2)                HeapCommitSize = both[1].toLongLong();        }        break;    case 0x3d91494: // /IDLOUT:[path\]filename        MergedIDLBaseFileName = option+8;        break;    case 0x345a04c: // /IGNOREIDL        IgnoreEmbeddedIDL = _True;        break;    case 0x3e250e2: // /IMPLIB:filename        ImportLibrary = option+8;        break;    case 0xe281ab5: // /INCLUDE:symbol        ForceSymbolReferences += option+9;        break;    case 0xb28103c: // /INCREMENTAL[:no]        if(*(option+12) == ':' &&             (*(option+13) == 'n' || *(option+13) == 'N'))            LinkIncremental = linkIncrementalNo;        else            LinkIncremental = linkIncrementalYes;        break;    case 0x26e4675: // /LARGEADDRESSAWARE[:no]        if(*(option+18) == ':' &&             *(option+19) == 'n')            LargeAddressAware = addrAwareNoLarge;        else            LargeAddressAware = addrAwareLarge;        break;    case 0x2f96bc8: // /libpath:dir    case 0x0d745c8: // /LIBPATH:dir        AdditionalLibraryDirectories += option+9;        break;    case 0x0341877: // /LTCG[:NOSTATUS|:STATUS]        config->WholeProgramOptimization = _True;        LinkTimeCodeGeneration = _True;        if(*(option+5) == ':' &&             *(option+6) == 'S')             ShowProgress = linkProgressAll;        break;    case 0x157cf65: // /MACHINE:{AM33|ARM|CEE|IA64|X86|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|PPC|SH3|SH4|SH5|THUMB|TRICORE}        switch (elfHash(option+9)) {        // Very limited documentation on all options but X86,        case 0x0005bb6: // X86            TargetMachine = machineX86;            break;        // so we put the others in AdditionalOptions...        case 0x0005b94: // X64        case 0x0046063: // AM33        case 0x000466d: // ARM        case 0x0004795: // CEE        case 0x0004963: // EBC        case 0x004d494: // IA64        case 0x0050672: // M32R        case 0x0051e53: // MIPS        case 0x51e5646: // MIPS16        case 0x1e57b05: // MIPSFPU        case 0x57b09a6: // MIPSFPU16        case 0x5852738: // MIPSR41XX        case 0x0005543: // PPC        case 0x00057b3: // SH3        case 0x57b7980: // SH3DSP        case 0x00057b4: // SH4        case 0x00057b5: // SH5        case 0x058da12: // THUMB        case 0x96d8435: // TRICORE        default:            AdditionalOptions += option;            break;        }        break;    case 0x0034160: // /MAP[:filename]        GenerateMapFile = _True;        MapFileName = option+5;        break;    case 0x164e1ef: // /MAPINFO:{EXPORTS|LINES}        if(*(option+9) == 'E')            MapExports = _True;        else if(*(option+9) == 'L')            MapLines = _True;        break;    case 0x341a6b5: // /MERGE:from=to        MergeSections = option+7;        break;    case 0x0341d8c: // /MIDL:@file        MidlCommandFile = option+7;        break;    case 0x84e2679: // /NOASSEMBLY        TurnOffAssemblyGeneration = _True;        break;    case 0x2b21942: // /NODEFAULTLIB[:library]        if(*(option+13) == '\0')            IgnoreAllDefaultLibraries = _True;        else            IgnoreDefaultLibraryNames += option+14;        break;    case 0x33a3a39: // /NOENTRY        ResourceOnlyDLL = _True;        break;    case 0x434138f: // /NOLOGO        SuppressStartupBanner = _True;        break;    case 0x0034454: // /OPT:{REF | NOREF | ICF[=iterations] | NOICF | WIN98 | NOWIN98}        {            char third = *(option+7);            switch (third) {            case 'F': // REF                if(*(option+5) == 'R') {                    OptimizeReferences = optReferences;                } else { // ICF[=iterations]                    EnableCOMDATFolding = optFolding;                    // [=iterations] case is not documented                }                break;            case 'R': // NOREF                OptimizeReferences = optNoReferences;                break;            case 'I': // NOICF                EnableCOMDATFolding = optNoFolding;                break;            case 'N': // WIN98                OptimizeForWindows98 = optWin98Yes;                break;            case 'W': // NOWIN98                OptimizeForWindows98 = optWin98No;                break;            default:                found = false;            }        }        break;    case 0x34468a2: // /ORDER:@filename        FunctionOrder = option+8;        break;    case 0x00344a4: // /OUT:filename        OutputFile = option+5;        break;    case 0x0034482: // /PDB:filename        ProgramDatabaseFile = option+5;        break;    case 0xa2ad314: // /PDBSTRIPPED:pdb_file_name        StripPrivateSymbols = option+13;        break;    case 0x6a09535: // /RELEASE        SetChecksum = _True;        break;    case 0x348857b: // /STACK:reserve[,commit]        {            QStringList both = QString(option+7).split(",");            StackReserveSize = both[0].toLongLong();            if(both.count() == 2)                StackCommitSize = both[1].toLongLong();        }        break;    case 0x78dc00d: // /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.minor]]        {            // Split up in subsystem, and version number            QStringList both = QString(option+11).split(",");            switch (elfHash(both[0].toLatin1())) {            case 0x8438445: // CONSOLE                SubSystem = subSystemConsole;                break;            case 0xbe29493: // WINDOWS                SubSystem = subSystemWindows;                break;            // The following are undocumented, so add them to AdditionalOptions            case 0x240949e: // EFI_APPLICATION            case 0xe617652: // EFI_BOOT_SERVICE_DRIVER            case 0x9af477d: // EFI_ROM            case 0xd34df42: // EFI_RUNTIME_DRIVER            case 0x5268ea5: // NATIVE            case 0x05547e8: // POSIX            case 0x2949c95: // WINDOWSCE                AdditionalOptions += option;                break;            default:                found = false;            }        }        break;    case 0x8b654de: // /SWAPRUN:{NET | CD}        if(*(option+9) == 'N')            SwapRunFromNet = _True;        else if(*(option+9) == 'C')            SwapRunFromCD = _True;        else            found = false;        break;    case 0x34906d4: // /TLBID:id        TypeLibraryResourceID = QString(option+7).toLongLong();        break;    case 0x4907494: // /TLBOUT:[path\]filename        TypeLibraryFile = option+8;        break;    case 0x976b525: // /TSAWARE[:NO]        if(*(option+8) == ':')            TerminalServerAware = termSvrAwareNo;        else            TerminalServerAware = termSvrAwareYes;        break;    case 0xaa67735: // /VERBOSE[:lib]        if(*(option+9) == ':') {            ShowProgress = linkProgressLibs;            AdditionalOptions += option;        } else {            ShowProgress = linkProgressAll;        }        break;    case 0xaa77f7e: // /VERSION:major[.minor]        Version = option+9;        break;    default:        AdditionalOptions += option;        break;    }    if(!found) {        warn_msg(WarnLogic, "Could not parse Linker options: %s, added as AdditionalOption", option);        AdditionalOptions += option;    }    return found;}// VCMIDLTool -------------------------------------------------------VCMIDLTool::VCMIDLTool()    :        DefaultCharType(midlCharUnsigned),        EnableErrorChecks(midlDisableAll),        ErrorCheckAllocations(unset),        ErrorCheckBounds(unset),        ErrorCheckEnumRange(unset),        ErrorCheckRefPointers(unset),        ErrorCheckStubData(unset),        GenerateStublessProxies(unset),        GenerateTypeLibrary(unset),        IgnoreStandardIncludePath(unset),        MkTypLibCompatible(unset),        StructMemberAlignment(midlAlignNotSet),        SuppressStartupBanner(unset),        TargetEnvironment(midlTargetNotSet),        ValidateParameters(unset),        WarnAsError(unset),        WarningLevel(midlWarningLevel_0){}XmlOutput &operator<<(XmlOutput &xml, const VCMIDLTool &tool){    return xml        << tag(_Tool)            << attrS(_Name, _VCMIDLTool)            << attrX(_AdditionalIncludeDirectories, tool.AdditionalIncludeDirectories)            << attrX(_AdditionalOptions, tool.AdditionalOptions, " ")            << attrX(_CPreprocessOptions, tool.CPreprocessOptions)            << attrE(_DefaultCharType, tool.DefaultCharType)            << attrS(_DLLDataFileName, tool.DLLDataFileName)            << attrE(_EnableErrorChecks, tool.EnableErrorChecks)            << attrT(_ErrorCheckAllocations, tool.ErrorCheckAllocations)            << attrT(_ErrorCheckBounds, tool.ErrorCheckBounds)            << attrT(_ErrorCheckEnumRange, tool.ErrorCheckEnumRange)            << attrT(_ErrorCheckRefPointers, tool.ErrorCheckRefPointers)            << attrT(_ErrorCheckStubData, tool.ErrorCheckStubData)            << attrX(_FullIncludePath, tool.FullIncludePath)            << attrT(_GenerateStublessProxies, tool.GenerateStublessProxies)            << attrT(_GenerateTypeLibrary, tool.GenerateTypeLibrary)            << attrS(_HeaderFileName, tool.HeaderFileName)            << attrT(_IgnoreStandardIncludePath, tool.IgnoreStandardIncludePath)            << attrS(_InterfaceIdentifierFileName, tool.InterfaceIdentifierFileName)            << attrT(_MkTypLibCompatible, tool.MkTypLibCompatible)            << attrS(_OutputDirectory, tool.OutputDirectory)            << attrX(_PreprocessorDefinitions, tool.PreprocessorDefinitions)            << attrS(_ProxyFileName, tool.ProxyFileName)            << attrS(_RedirectOutputAndErrors, tool.RedirectOutputAndErrors)            << attrE(_StructMemberAlignment, tool.StructMemberAlignment, /*ifNot*/ midlAlignNotSet)            << attrT(_SuppressStartupBanner, tool.SuppressStartupBanner)            << attrE(_TargetEnvironment, tool.TargetEnvironment, /*ifNot*/ midlTargetNotSet)            << attrS(_TypeLibraryName, tool.TypeLibraryName)            << attrX(_UndefinePreprocessorDefinitions, tool.UndefinePreprocessorDefinitions)            << attrT(_ValidateParameters, tool.ValidateParameters)            << attrT(_WarnAsError, tool.WarnAsError)            << attrE(_WarningLevel, tool.WarningLevel)        << closetag(_Tool);}bool VCMIDLTool::parseOption(const char* option){#ifdef USE_DISPLAY_HASH    displayHash("/D name[=def]"); displayHash("/I directory-list"); displayHash("/Oi");    displayHash("/Oic"); displayHash("/Oicf"); displayHash("/Oif"); displayHash("/Os");    displayHash("/U name"); displayHash("/WX"); displayHash("/W{0|1|2|3|4}");    displayHash("/Zp {N}"); displayHash("/Zs"); displayHash("/acf filename");    displayHash("/align {N}"); displayHash("/app_config"); displayHash("/c_ext");    displayHash("/char ascii7"); displayHash("/char signed"); displayHash("/char unsigned");    displayHash("/client none"); displayHash("/client stub"); displayHash("/confirm");    displayHash("/cpp_cmd cmd_line"); displayHash("/cpp_opt options");    displayHash("/cstub filename"); displayHash("/dlldata filename"); displayHash("/env win32");    displayHash("/env win64"); displayHash("/error all"); displayHash("/error allocation");    displayHash("/error bounds_check"); displayHash("/error enum"); displayHash("/error none");    displayHash("/error ref"); displayHash("/error stub_data"); displayHash("/h filename");    displayHash("/header filename"); displayHash("/iid filename"); displayHash("/lcid");    displayHash("/mktyplib203"); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -