Re: [问题] 专案平台 与 dll 关系

楼主: fo40225   2015-08-26 23:08:22
※ 引述《prjryu (再努力一点)》之铭言:
: 各位大大,最近在开发程式上遇到关于专案开发平台的选择与dll使用上的问题
: 我目前帮忙开发的这只程式前人在开发的时候平台一直是选用 Any CPU
: 手上拿到了厂商给的dll档在x64的作业系统会跳出dll error说目标平台不对
: 若选用x86的平台build就可以用,但程式平台不能改,厂商也没有x64的dll
: 找到的解法只说改平台成x86就能用,但我很担心影响原本程式里的功能,
: 请问有没有人知道平台选用从Any CPU改为x86是否会影响原本for x64的dll功能?
: 有文献解说这一部分吗?
: 我一直查找不到,关于x86 x64 AnyCPU平台选用与x86 x64 dll的关系,
: 请版上大大帮帮忙,指点指点! 感恩~
CLR via C# TABLE 1-2
/platform选项 输出类型 x86Windows x64Windows ARMWindowsRT IA64Windows
AnyCPU PE32/agnostic 32bit 64bit 32bit 64bit
AnyCPU PE32/agnostic 32bit Wow64(32bit) 32bit WoW64(32bit)
(prefer32bit)
x86 PE32/x86 32bit Wow64(32bit) 不执行 WoW64(32bit)
x64 PE32+/x64 不执行 64bit 不执行 不执行
ARM PE32/ARM 不执行 不执行 32bit 不执行
Itanium PE32+/Itanium 不执行 不执行 不执行 64bit
如果你的 Native dll 不是32/64合一
而是32 64分开的话 必须加载正确的版本才能运作
而要加载哪一个版本 取决于你的专案输出类型与执行的作业系统是哪个
作者: neo5277 (I am an agent of chaos)   2015-08-27 14:32:00
COOL! 推整理

Links booklink

Contact Us: admin [ a t ] ucptt.com