GIWS在构造类时终止进程 < >由于在C++中我没有找到合适的库来从TEX中渲染图像,而不依赖胶乳,所以我决定使用GIWS。我也尝试过MIMETEX,但我不能找到足够的项目(它不容易用C++来完成,而且渲染的图像也不好,而且GIF不。PNG) 这是我的Java代码: package clatex; import java.io.IOException; import org.scilab.forge.jlatexmath.TeXConstants; import org.scilab.forge.jlatexmath.TeXFormula; import org.scilab.forge.jlatexmath.TeXIcon; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class CLatex { public CLatex(){ } public int turn(int a) throws IOException{ String math = "X+X"; TeXFormula formule = new TeXFormula(math); TeXIcon ti = formule.createTeXIcon(TeXConstants.STYLE_DISPLAY, 40); BufferedImage b = new BufferedImage(ti.getIconWidth(), ti.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR); File outputfile = new File("saved.png"); ImageIO.write(b, "png", outputfile); return 0; } }`

GIWS在构造类时终止进程 < >由于在C++中我没有找到合适的库来从TEX中渲染图像,而不依赖胶乳,所以我决定使用GIWS。我也尝试过MIMETEX,但我不能找到足够的项目(它不容易用C++来完成,而且渲染的图像也不好,而且GIF不。PNG) 这是我的Java代码: package clatex; import java.io.IOException; import org.scilab.forge.jlatexmath.TeXConstants; import org.scilab.forge.jlatexmath.TeXFormula; import org.scilab.forge.jlatexmath.TeXIcon; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class CLatex { public CLatex(){ } public int turn(int a) throws IOException{ String math = "X+X"; TeXFormula formule = new TeXFormula(math); TeXIcon ti = formule.createTeXIcon(TeXConstants.STYLE_DISPLAY, 40); BufferedImage b = new BufferedImage(ti.getIconWidth(), ti.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR); File outputfile = new File("saved.png"); ImageIO.write(b, "png", outputfile); return 0; } }`,java,c++,xml,latex,Java,C++,Xml,Latex,总结一下这段代码:我有一个名为clatex的包,我使用org.scilab.forge.jlatexmath。方法int turn()创建“saved.png”,构造函数为空。我还测试了这段代码。 这是CLatex.giws.xml: <?xml version="1.0" encoding="UTF-8"?> <package name="CLatex"> <object name="CLatex"> <method name="tur

总结一下这段代码:我有一个名为clatex的包,我使用org.scilab.forge.jlatexmath。方法int turn()创建“saved.png”,构造函数为空。我还测试了这段代码。
这是CLatex.giws.xml:

<?xml version="1.0" encoding="UTF-8"?>
<package name="CLatex">
  <object name="CLatex">
      <method name="turn" returnType="int">
        <param type="int" name="a" />
      </method>
  </object>
</package>

此代码与GIWS相关。

GIWS呈现此代码并生成CLatex.cpp和CLatex.h。这是我的C++代码:

#include "latex/CLatex.h"
#include <jni.h>
JavaVM* create_vm() {
    JavaVM* jvm; JNIEnv* env;

    JavaVMInitArgs args;
    JavaVMOption options[2];

    /* There is a new JNI_VERSION_1_4, but it doesn't add anything for the purposes of our example. */
    args.version = JNI_VERSION_1_4;

    args.nOptions = 2;
    options[0].optionString = "-Djava.class.path=.";

    options[1].optionString = "-Xcheck:jni";
    args.options = options;

    args.ignoreUnrecognized = JNI_FALSE;

    JNI_CreateJavaVM(&jvm, (void **)&env, &args);

    return jvm;
}

int main(){
    JavaVM* jvm = create_vm();

    CLatex::CLatex *test =
    new CLatex::CLatex(jvm);

    return test->turn(22);
}
#包括“latex/CLatex.h”
#包括
JavaVM*create_vm(){
JavaVM*jvm;JNIEnv*env;
JavaVMInitArgs args;
JavaVMOption选项[2];
/*有一个新的JNI_版本_1_4,但它没有为我们的示例添加任何内容*/
args.version=JNI_version_1_4;
args.nOptions=2;
选项[0]。选项字符串=“-Djava.class.path=”;
选项[1]。选项字符串=“-Xcheck:jni”;
args.options=选项;
args.ignoreunrecogned=JNI_FALSE;
JNI_CreateJavaVM(&jvm,(void**)&env和args);
返回jvm;
}
int main(){
JavaVM*jvm=create_vm();
CLatex::CLatex*测试=
新CLatex::CLatex(jvm);
返回测试->旋转(22);
}
当我使用这段代码时,它写道:“进程以状态1(0分0秒)终止”。它不编译并给出错误。
我不知道我的代码中哪一部分是错误的,java,XML或者C++(也许GIWS有什么不对?)不幸的是,我不擅长Java,但我正在尝试处理它。谢谢你的帮助。

作为注释,我使用代码::用GCC为C++块;在Ubuntu QualQualal.

GIWS下生成的NETBeajava,生成C++代码。因此,我不明白你怎么能得到CLatex.h

告诉你正在使用的GIWS版本也会有所帮助


最后,你应该使用调试器来查看正在发生的事情。

GIWS生成C++代码。因此,我不明白你怎么能得到CLatex.h

告诉你正在使用的GIWS版本也会有所帮助


< >最后,您应该使用调试器来查看正在发生的事情。

< P>我在CIT中添加了一个例子,说明如何使用C++在Git存储库中使用<代码> GIWS < /代码>包装器:
P>我在Git存储库中使用了< <代码> GIWS包装器,从C++中调用了如何调用<代码> JLaTeXMath <代码>:

我知道CLatex.cpp有问题,这个文件是由GIWS创建的(我根本没有碰它),为了检测它,它将exit(88)放在这个文件的各个地方(88只是一个随机调试int),当我将这个控件放在CLatex.cpp的“return curEnv;”之后时,它变为1(不是88!)(在54.line中,在JNIEnv*CLatex::getCurrentEnv()方法下)当编译器编译这段代码时,没有任何错误,当编译器链接目标文件时就会出现问题。因此,我假设GIWS中有一个bug(我甚至尝试了原始示例),我知道CLatex.cpp有问题,而这个文件是由GIWS创建的(我根本没有碰它)为了检测它,它把exit(88)放在这个文件的各个地方(88只是一个随机调试int),当我把这个控件放在CLatex.cpp中的“return currenv;”之后时,它变为1(不是88!)(在54.line中,在JNIEnv*CLatex::getCurrentEnv()方法下)当编译器编译这段代码时,没有任何错误,问题发生在编译器链接目标文件时。因此,我假设GIWS中存在错误(我甚至尝试了原始示例)