由x86平台编译的exe程序是32位程序。32位程序exe不能加载64位的dll,就是说不能调用其中的类、方法和对象等。程序exe是由x64平台编译出来的则是64位exe程序,它是不能调用32位的dll的。
主程序exe是在x86或者x64平台下编译的,它要加载依赖的dll就必须是和主程序在同一种平台下编译出来的。
Any CPU编译出来的exe程序的位,取决于操作系统。而由Any CPU编译出来dll的位,则取决于调用它的主程序,若主程序是32位的,那么dll也是32位的,若主程序是64位的,那么dll就是64位的。
所以dll一般采用Any CPU平台编译,而主程序一般采用x86平台编译。 在不清楚客户的电脑是什么类型的操作系统的情况下,或者两者都有的时候,主程序采用x86平台编译,dll采用Any CPU平台编译。若清楚的知道是64位操作系统,那么就可以都按x64平台编译了。
本文探讨了32位与64位程序及其依赖库之间的兼容性问题,详细解释了不同位数的exe主程序与dll库之间的调用限制,并介绍了AnyCPU编译选项如何根据运行环境自动调整。
2648

被折叠的 条评论
为什么被折叠?



