作者fo40225 (靖)
看板C_Sharp
标题Re: [问题] 专案平台 与 dll 关系
时间Wed Aug 26 23:08:22 2015
※ 引述《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分开的话 必须载入正确的版本才能运作
而要载入哪一个版本 取决於你的专案输出类型与执行的作业系统是哪个
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.194.66
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1440601706.A.675.html
※ 编辑: fo40225 (1.169.194.66), 08/26/2015 23:09:16
1F:推 neo5277: COOL! 推整理 08/27 14:32