问题标签 [native]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
911 浏览

jvm - JVM如何处理本机代码

考虑一个我必须从我的 Java 程序中调用 C++ 代码的情况。C++ 代码创建了数千个对象。这些动态对象存储在哪里?我怀疑在 JVM 堆中,因为本机代码将成为与 JVM 相同的进程的一部分。

如果是,Java 垃圾收集器线程的规则是否适用于 C++ 代码的对象?

0 投票
3 回答
339 浏览

c++ - 本机应用程序的大量初始内存占用

我注意到我正在处理的本机 C++ 应用程序在进入我的任何代码之前就具有相当大的内存占用 (20MB)。

(我指的是 Windows 中的“私有字节”度量,据我了解,这是最有用的度量)。

我在“main()”函数的第一行放置了一个断点,果然,当它到达那个位置时,占用空间是 20MB。

EXE 的大小只有几兆,所以这还不算。

我还故意删除了所有的 DLL,只是为了证明它们不是原因。正如预期的那样,它收到“找不到 Dll”消息,但占用空间仍然是 20MB!

所以然后我想知道可能是静态初始化的对象是原因。

因此,我在“new”和“malloc”中都添加了断点。在第一次命中(对于第一个静态初始化程序)时,内存已经是 20MB。

有人对我如何诊断是什么消耗了这段记忆有任何想法吗?

因为它似乎是通常的 new/malloc 范式之外的内存,所以我很难理解如何调试。

干杯,

约翰

0 投票
2 回答
2800 浏览

java - 从 java 代码中轻松使用 windows 静态库(最好使用 JNA)

我必须使用*.libjava 代码中的一些静态 Windows 库(),我可以编写 C++ JNI 包装器,但我宁愿不这样做(没有 C++ 经验)。

使用它的最简单(最少的开发工作量)方式是什么,性能并不重要,因为该代码只会获取一些数据,很可能会在 JAVA 端进行处理。

很可能我会使用JNA,但 AFAIK 它需要动态库,而我有静态库。

我还了关于将静态库转换为动态库的问题。

0 投票
4 回答
71863 浏览

native - 本机代码和托管代码之间的区别?

例如,在查看 GlowCode 分析器网站时,它会说:

“GlowCode 6.2 和 x64 配置本机、托管和混合 C++、C#、.NET 代码”

他们的意思是什么?

0 投票
1 回答
1657 浏览

winapi - 在 Windows Mobile 上使用 IImage 接口将 BITMAP 转换为 PNG

我在 Windows Mobile 应用程序中有一个 BITMAP 结构 (HBITMAP) 的句柄——我想将位图保存为 PNG 文件,如果可能的话,使用IImage接口。(在这种情况下没有 BMP 文件,BITMAP 仅在内存中)。

看起来我可以使用 IImagingFactory 的IImagingFactory::CreateImageEncoderToFile方法来保存文件,但我认为我首先必须将 BITMAP 转换为“IImage”格式。

关于如何使用本机代码执行此操作的任何想法?

0 投票
5 回答
788 浏览

c# - c#编译的应用程序可以在未安装.net的机器上运行吗?

我想为 windows 开发一个小实用程序,我更喜欢在 c# 中这样做,因为它更容易(我是一个 java 开发人员)。

该实用程序可供许多人下载,我假设其中一些人不会安装 .net 框架(这个假设是否正确,比如我的目标是 win xp 及更高版本?)

我的问题是:ac# 应用程序可以编译成不需要安装 .net 框架的方式吗?

0 投票
9 回答
16775 浏览

java - 将 PHP 代码连接到 Java 后端

我正在实现一个网站,前端使用 PHP,后端使用 Java 服务。两部分如下:

  1. PHP 前端监听 http 请求并与数据库交互。

  2. Java 后端持续运行并响应来自前端的调用。

更具体地说,后端是一个守护进程,它连接并维护与多个 IM 服务(AOL、MSN、Yahoo、Jabber...)的链接。

这两层将部署在同一个系统上(我想是 CentOS 机器),引入中间层(例如:使用 XML-RPC)会降低性能(资源也相当有限)。

问题:有没有办法直接链接两个层?(两者之间没有更多的网络服务)

0 投票
3 回答
899 浏览

java - 调用内置的 java 本地方法

是否可以调用JVM 内置的native 代码,即java.lang 和java.io 中的各个类调用的代码?换句话说,你能绕过内置的 java API 来访问各种系统级调用,例如文件系统访问吗?我知道我可以通过构建自己的本机代码库并通过 JNI 调用它来做到这一点,但是对于已经内置到 JVM 中的功能不需要额外的本机库会很优雅。

0 投票
2 回答
1050 浏览

android - 将复杂的原生应用程序编译到 Android ARM 的完整方法

这是我的第一个 S/O 问题,请温柔!

我想了解更多关于将 C 应用程序移植到本机 ARM 以在 Android 设备上使用的信息。

我可以使用源代码附带的预构建工具链制作简单的程序,但是如何将此工具链与多个文件且需要配置和制作的应用程序一起使用?

0 投票
5 回答
15502 浏览

c# - 是否可以在 C# 和非托管 C++ 之间共享枚举声明?

有没有办法在本机(非托管)C++ 和(托管)C# 之间共享枚举定义?

我在完全非托管代码中使用了以下枚举:

我们的应用程序有时会使用托管组件。该 C# 组件通过托管 C++ 互操作 dll(来自本机 dll)将枚举项值作为整数获取。(互操作 dll 仅在需要 C# 组件时才加载。)C# 组件复制了枚举定义:

有没有办法在不将本机 C++ dll 转换为托管 dll 的情况下消除重复?