首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x64 x86 DLL AnyCPU

x64 x86 DLL AnyCPU
EN

Stack Overflow用户
提问于 2014-08-16 00:09:58
回答 2查看 5.1K关注 0票数 0

我正在尝试使用EasyHook挂接一个简单的进程。我正在x64环境中编程/调试,并在Visual Studio C#上使用AnyCpu配置编译我的动态链接库。

问题是,当尝试在inject库函数中使用这个DLL (在另一个项目中,同样的解决方案,也是用AnyCpu编译)时:

RemoteHooking.Inject(TargetPID,"DivisionInject.dll","DivisionInject.dll",ChannelName);(第二个参数为32位系统。第3位用于64位。)

我不知道为什么这一行抛出异常: System.ArgumentException:给定的64位库不存在!

我想用AnyCpu来创建我的动态链接库,我可以在32位系统和64位系统上使用相同的文件( DLL )。这是错的吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-08-16 00:20:20

AnyCpu设置基本上意味着如何加载或执行进程或库的确定将基于执行/加载点。编译为AnyCpu的库可以由32位和64位调用进程加载。编译为AnyCpu的可执行文件将在64位计算机上运行64位进程,在32位计算机上运行32位进程。有关AnyCpu目标概念的讨论,请参阅this线程。

如果您的调用方被编译为64位并设置为AnyCpu,它将尝试加载64位库。

票数 1
EN

Stack Overflow用户

发布于 2021-04-15 22:07:58

虽然现在不太常见,但可以在64位计算机上安装Windows 32位。在这种情况下,只有为32位/AnyCpu构建的exe才会运行。反之亦然。32位计算机只能运行Windows 32位。因此,O/S位是决定因素,而不是硬件。

64位机器上的Windows 32位在不想同时支持操作系统或在Windows-64上运行的32位遗留应用程序的企业商店中更为常见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25330031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档