有64位的Visual Studio吗?为什么不呢?

我有一个任意的。net程序集列表。

我需要以编程方式检查每个DLL是否为x86构建(而不是x64或任何CPU)。这可能吗?

我从64位系统上的32位非托管DLL调用函数。我得到的是:

BadImageFormatException:试图加载格式不正确的程序。(异常来自HRESULT: 0x8007000B)

首先,我把我的项目设置为任何CPU平台,所以我把它们都改为x86,但这个错误仍然发生。这是我知道的唯一解决办法。

dll没有损坏,因为我可以将它们与其他程序一起使用(我没有源代码)。我想也许它没有找到一个依赖,但我检查了一下,它们都在那里。另外,它不会在这种情况下抛出DllNotFoundException吗?

我还能做什么?在您说“改用64位非托管DLL”之前,请允许我指出没有一个DLL。;)

我对Visual Studio 2008中的. net平台构建选项有些困惑。

“Any CPU”编译目标是什么,它生成什么类型的文件?我检查了这个“任意CPU”构建的输出可执行文件,发现它们是x86可执行文件(谁也没想到!)那么,针对可执行文件到x86和针对可执行文件到x86之间有什么区别吗?“任何CPU”?

我注意到的另一件事是,托管c++项目没有这个平台作为一个选项。为什么呢?这是否意味着我对“任何CPU”可执行文件是普通32位的怀疑是正确的?

我如何知道我的应用程序运行的JVM是32位还是64位?具体来说,我可以在程序中使用哪些函数或属性来检测这一点?

当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:

/dev/kvm权限被拒绝。

我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?