java字节与C#字节相同吗?

发布于 2024-11-13 07:07:54 字数 171 浏览 1 评论 0原文

如果输入参数是字节数组 - byte[],则来自 dll 的本机方法可以在 java 中工作。 如果我们使用 c# 中的相同方法,它会抛出 EntryPointNotFoundException。

这是因为 java 和 c# 中的 byte[] 是不同的东西吗?如果是这样,我应该如何使用 c# 中的本机函数?

Native method from dll works in java if the input parameter is array of bytes - byte[].
If we use the same method from c# it throws EntryPointNotFoundException.

Is that because of byte[] in java and c# are different things? and if it's so how should I use native function from c#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

落墨 2024-11-20 07:07:54

Java 缺少无符号类型。特别是,Java 缺乏无符号字节的原始类型。 Java 字节类型是有符号的,而 C# 字节是无符号的,sbyte 是有符号的。

Java lacks the unsigned types. In particular, Java lacks a primitive type for an unsigned byte. The Java byte type is signed, while the C# byte is unsigned and sbyte is signed.

稚气少女 2024-11-20 07:07:54

这是因为java和c#中的byte[]是不同的东西吗?

是的。

  • 字节序:Java 在内部将内容存储为 Big Endian,而 .NET 默认情况下为 Little Endian。
  • 有符号性: C# 字节是无符号的。 Java 字节是有符号的。

请参阅 转换 int 时的不同结果到字节数组 - .NET 与 Java

Is that because of byte[] in java and c# are different things?

Yes.

  • Endianness: Java stores things internally as Big Endian, while .NET is Little Endian by default.
  • Signedness: C# bytes are unsigned. Java bytes are signed.

See different results when converting int to byte array - .NET vs Java.

节枝 2024-11-20 07:07:54

本机函数的签名是什么?在 Java 和 C# 中如何声明它?

EntryPointNotFoundException 最常见的原因是函数名称被破坏(尤其是如果函数是用 C++ 编写的,则为 true)或拼写错误。

问题的另一个根源是 WinAPI 函数的“W”和“A”后缀,用于区分函数的 ANSI 和 Unicode 版本。 .NET互操作机制可以尝试猜测函数后缀,因此这可能是混乱的根源,

What's the signature of the native function? How do you declare it in Java and in C#?

The most common reason for EntryPointNotFoundException is that function name is mangled (esp. true if function is written in C++) or misspelled.

Another source of problem is 'W' and 'A' suffixes for WinAPI function used to distinguish ANSI and Unicode versions of functions. .NET interop mechanism can try to guess the function suffix, so that may be the source of confusion,

苏大泽ㄣ 2024-11-20 07:07:54

Java字节:

java byte:字节数据类型是一个 8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。字节数据类型对于节省大型数组中的内存非常有用,这对于节省内存实际上很重要。它们也可以用来代替 int,它们的限制有助于澄清您的代码;变量的范围是有限的,这一事实可以作为一种文档形式。

更多 Java 字节

C# 字节

Byte 表示一个 8 位无符号整数,Byte 是一种不可变值类型,表示无符号整数,其值范围为 0(由 Byte.MinValue 常量表示)到 255(由 Byte.MaxValue 常量表示)持续的)。 .NET Framework 还包括有符号的 8 位整数值类型 SByte,它表示范围从 -128 到 127 的值。

C# 关键字

c# Byte 的更多内容

Java Byte:

java byte: The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters. They can also be used in place of int where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documentation.

more for Java Byte

C# Byte

Byte Represents an 8-bit unsigned integer,Byte is an immutable value type that represents unsigned integers with values that range from 0 (which is represented by the Byte.MinValue constant) to 255 (which is represented by the Byte.MaxValue constant). The .NET Framework also includes a signed 8-bit integer value type, SByte, which represents values that range from -128 to 127.

C# key words

more for c# Byte

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文