zoukankan      html  css  js  c++  java
  • VS 2019 编译的程序在 xp 下运行

    dll 绑定:将 DLL 文件写入导入表,并不是集成进去

    增量链接:在各个函数之间留下 Padding(0xCC),增加小规模代码的情况下不会整个重新编译。但开启这个选项会增加一个 ILT表(Incremental Linking Table)。

    MultiThread(static link) MT            libcmt.lib
    Debug multiThread(static link) MTd            libcmtd.lib
    MultiThread(dynamic link) MD            msvert.lib
    Debug multiThread(dynamic link) MDd        msvertd.lib

    // NoSEH.cpp : Defines the entry point for the console application.
    //
    /*-----------------------------------------------------------------------
    第8章  Windows下的异常处理
    《加密与解密(第四版)》
    (c)  看雪学院 www.kanxue.com 2000-2018
    -----------------------------------------------------------------------*/
    #include "stdafx.h"
    #pragma comment(linker,"/Entry:main")
    #pragma comment(linker,"/subsystem:windows")
    
    #pragma comment(linker,"/entry:main")
    
    // 需要手动添加这三个库文件,网上说在 代码生成 -> 运行库 中选择的就是
    // 但经过测试,发现都不行,手动添加反而可以
    #pragma comment(lib, "msvcrtd.lib")
    #pragma comment(lib, "vcruntimed.lib")
    #pragma comment(lib, "ucrtd.lib")
    
    __declspec(naked) void main(void)
    {
                //不能添加 printf 函数,添加了就不能在 XP 程序中运行了 __asm { mov dword ptr fs:[
    0],-1 xor eax,eax mov [eax],5 //向0地址写入数据,引发内存访问异常 retn } }

    这个程序的编译(Release版本)关闭了一系列可能在 XP 中不能实现的选项,并使用运行库 MTD/MT。然后将程序扔进 XP,就能在 XP 中运行了。

  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13940562.html
Copyright © 2011-2022 走看看