.NET提供一个Environment.Is64BitProcess可以查看是64位还是32位程序,2楼说的也是对的,至于"x86.dll"你写2个方法吧
区别32和64的方法网上可以找到很多,我就是想避免写两个方法
严格说起来,所有关于兼容性的需求都是高级需求。
没钱、没耐心、没有成本预算的,直接拉倒吧!
根据IntPtr判断是4个字节就是32位呗,否则就是64位
问题是这个怎么改,"x86.dll"是写死的
[DllImport("x86.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int Login(string usr, string pwd, string params);
你又想避免写两个方法, 那没办法了。
这么搞太扯蛋了。32和64位应分为不同的程序。 你这样去判断, 影响性能和心情。
你可以开发另一个小安装(更新)程序, 用来下载\安装你的主程序, 在你这个小程序里就去判断系统版本然后自动去下载安装相应的主程序。
64和32应全分开。 去看看别人的软件, 都是分64版和32版的。
我的是Web Service 部署的时候不确定对方是32位还是64位的
DLL有两个32位和64位名字不同。
经理要求程序自动判断
dll 的名字一样,把 x64 版本的拷贝到 System32 目录下,x86 版本的拷贝到 SysWOW64 目录下。
dll名字不一样
@The Kite Runner: 改成一样