zoukankan      html  css  js  c++  java
  • How do exes/dlls generated with the /platform:x switch interact?

    I received a question about this recently, so i figured i'd elaborate here with a little example...

     

    Let's assume we have the following three dlls:

       anycpu.dll      -- compiled "any cpu"

       x86.dll           -- compiled "x86"

       x64.dll           -- compiled "x64"

     

    And the following three exes:

       anycpu.exe     -- compiled "any cpu"

       x86.exe          -- compiled "x86"

       x64.exe          -- compiled "x64"

     

    What happens if you try to use these exes and dlls together? We have to consider two possible scenarios, running on a 32-bit machine and running on a 64-bit machine...

     

    On a 32-bit x86 machine:

    anycpu.exe -- runs as a 32-bit process, can load anycpu.dll and x86.dll, will get BadImageFormatException if it tries to load x64.dll

    x86.exe -- runs as a 32-bit process, can load anycpu.dll and x86.dll, will get BadImageFormatException if it tries to load x64.dll

    x64.exe -- will get BadImageFormatException when it tries to run

     

    On a 64-bit x64 machine:

    anycpu.exe -- runs as a 64-bit process, can load anycpu.dll and x64.dll, will get BadImageFormatException if it tries to load x86.dll

    x86.exe -- runs as a 32-bit process, can load anycpu.dll and x86.dll, will get BadImageFormatException if it tries to load x64.dll

    x64.exe -- runs as a 64-bit process, can load anycpu.dll and x64.dll, will get BadImageFormatException if it tries to load x86.dll

  • 相关阅读:
    HBase
    linux配置环境变量
    ubuntu17.04安装flash
    WebService服务及客户端 编程
    eclipse
    设计模式:简单工厂
    设计模式:工厂方法
    C#加载dll 创建类对象
    C#线程
    Opencv 3入门(毛星云)摘要
  • 原文地址:https://www.cnblogs.com/wd775/p/1964168.html
Copyright © 2011-2022 走看看