繁体   English   中英

C#编译不安全代码中的错误

[英]C# compile errors in unsafe code

编译VS 2010 c#项目(.NET 4.0,任何CPU,允许不安全的代码=检查)我们得到各种编译错误,如下所示:

  1. 运算符'*'不能应用于'System.IntPtr'和'int'类型的操作数

  2. 常量值'325486741'无法转换为'int'(使用'unchecked'语法覆盖)

  3. 无法将'string'类型转换为'char *'

  4. 无法将类型'long'隐式转换为'byte *'。 存在显式转换(您是否错过了演员?)

  5. 无效的表达方式“ ref”

所有这些都是以“不安全”的方式发生的。

如何解决这些问题?

我们需要看看你的代码,但我会说“不安全”部分与错误无关,因为那些似乎是铸造等问题。

以下是一些可能有用的信息:

  1. 运算符'*'不能应用于'System.IntPtr'和'int'类型的操作数

尝试先转换为int或long。

  1. 常量值'325486741'无法转换为'int'(使用'unchecked'语法覆盖)

尝试使用unchecked((int)变量)。

  1. 无法将'string'类型转换为'char *'

尝试使用:

 fixed (char* pChar = my_string) { ... }
  1. 无法将类型'long'隐式转换为'byte *'。 存在显式转换(您是否错过了演员?)

尝试强制转换:byte * pB =(byte *)value;

  1. 无效的表达方式“ ref”

如果没有代码,我不能说太多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM