C++程序中JAR文件的实现 我正在开发一个CAD软件,在我的图形部分,我使用的是OpenGLL,内核是用C++开发的。 对于窗口界面,有人建议我使用QT,但由于我的软件是用于商业用途的,所以我不想使用QT,而是使用Java。 我的问题是,我的内核是C++的,内核控制程序,我能在我的C++程序中使用jar exe吗? 如果是,任何人都可以提供一些简单的例子或一些网站。 如果没有,还有什么选择
我需要windows界面,主要是让用户通过提供一些用户可以单击的小图标来选择要执行的操作,如创建点、线、圆等。C++程序中JAR文件的实现 我正在开发一个CAD软件,在我的图形部分,我使用的是OpenGLL,内核是用C++开发的。 对于窗口界面,有人建议我使用QT,但由于我的软件是用于商业用途的,所以我不想使用QT,而是使用Java。 我的问题是,我的内核是C++的,内核控制程序,我能在我的C++程序中使用jar exe吗? 如果是,任何人都可以提供一些简单的例子或一些网站。 如果没有,还有什么选择,java,c++,qt,opengl,cad,Java,C++,Qt,Opengl,Cad,我需要windows界面,主要是让用户通过提供一些用户可以单击的小图标来选择要执行的操作,如创建点、线、圆等。 我还需要弹出窗口的Windows界面来显示警告、错误、输入参数等。 < P>我不知道如何通过C++来运行JAR文件,然后,明显的系统或CREATEPATION或OFFECH调用从C++到OS/< 这样说,您可以考虑让应用程序由多个独立的进程组成,它们通过TCP或UDP套接字进行通信。然后,每一篇文章都可以用最有意义的语言写成。例如,可以用C++编写的应用程序的核心核心设置TCP服务器,
我还需要弹出窗口的Windows界面来显示警告、错误、输入参数等。 < P>我不知道如何通过C++来运行JAR文件,然后,明显的系统或CREATEPATION或OFFECH调用从C++到OS/<
这样说,您可以考虑让应用程序由多个独立的进程组成,它们通过TCP或UDP套接字进行通信。然后,每一篇文章都可以用最有意义的语言写成。例如,可以用C++编写的应用程序的核心核心设置TCP服务器,然后通过专用套接字连接将java工具包中的工具栏应用程序发送到核心程序。仔细想想,UDP可能更适合这样做。无论如何,你明白了
另外,我不确定你拒绝Qt的原因很多商业应用程序都使用过它,而且它是可以定制的,尽管我必须承认,出于其他原因,我自己也不是Qt的忠实粉丝。如果你在商业项目中使用它们的dll而不进行修改,你甚至可以在商业项目中使用Qt <>但是您也可以使用JNI java本地接口来将java与C++连接。或者你可以用类似的东西。SWIG从C++链接生成java类。它大大简化了两种语言的接口工作
您可能需要用Java启动应用程序,这是必要的,并且与您想要的不同。java然后通过DLL加载C++内核,然后调用函数。< P>可以直接将java虚拟机嵌入C++程序中。JVM提供了一个API,允许在与本机程序相同的进程空间中实例化VM 但是,与其将JVM嵌入到本机应用程序中,我认为做相反的事情更好:让JVM调用本机代码 两者都需要使用Java本机接口JNI,但在第一种情况下,对于向VM公开的本机函数,还需要执行一些额外的步骤。这些额外的需求可能难以满足大规模本机应用程序 看 8.3注册本机方法 [……] 当本机应用程序嵌入虚拟机实现并且需要与本机应用程序中定义的本机方法实现链接时,RegisterNations特别有用。虚拟机将无法自动找到此本机方法实现,因为它只在本机库中搜索,而不是在应用程序本身中搜索
换句话说,所有非dll_导出的本机方法都必须手动注册到VM。这是一个非常重要的要求。无论您做什么,都不要使用系统//原因如下:我不确定我是否理解您的观点,即作为商业软件,您不能使用Qt。Qt可以用于封闭源代码的商业项目。。。即使是免费的,也不可能做到这一点。@6502你的意思是,我可以在我的软件中使用QT,向任何人出售我的软件&我不需要向QT支付费用吗?这是我的基本理解,但我不是律师@CAD_编码:IANAL,但Qt-original有一种双重许可模式:商业上允许封闭源代码项目,需要每个开发者许可证或GPL,需要自由源代码,自由源代码,而不是啤酒代码。然而,自从很久以来,它还添加了一个LGPL选项,只要您使用库的DLL版本,就可以创建封闭源代码的商业程序。@CAD\U编码:自从Qt获得LGPL许可证选项以来,您可以在任何类型的项目中自由使用它。您甚至可以对Qt本身进行修改,但是随后必须发布这些修改的源代码,但只发布这些修改。一种方法是将其分为两个项目:一个是LGPL-ed库,涵盖对Qt的修改,另一个项目是您的程序,该程序链接,但不针对Qt和添加库进行修改。