C# 编译器选项 /platform(指定输出平台)32位程序运行到x64平台的问题

当C#程序以AnyCPU编译并在64位系统上运行时,可能因引用错误的API导致内存访问异常。/platform选项提供了解决方案,包括x86、x64等。在32位系统上,AnyCPU模式正常,但在64位系统上,可能会32位APP调用32位COM,引发问题。解决办法是固定平台为x86,确保程序按正确指令集运行。另外,/anycpu32bitpreferred选项仅支持.NET 4.5及以上,使程序在64位系统上以32位模式运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------------------------------------

已移至博客园

http://www.cnblogs.com/kongfl888/p/3351728.html

---------------------------------------------------


如果说你编译的exe运行时报错:


“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”


这很有可能是你是以非托管的方式错误地引用了64位的API中去。

为什么会这样?

那你就要考虑VS的编译器选项 /platform


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值