java字节与C#字节相同吗?
如果输入参数是字节数组 - 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
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.
是的。
请参阅 转换 int 时的不同结果到字节数组 - .NET 与 Java。
Yes.
See different results when converting int to byte array - .NET vs Java.
本机函数的签名是什么?在 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,
Java字节:
更多 Java 字节
C# 字节
c# Byte 的更多内容
Java Byte:
more for Java Byte
C# Byte
more for c# Byte