草庐IT

JNI_ASSERT

全部标签

java - 使用 JNI 从 java 调用 fortran dll

我有一个Fortran格式的Fifp.dll,带有一个简单的voidRESET()函数,并尝试从我的Java代码中调用它。我做了一个简单的java测试类:publicclassTestJni{static{System.loadLibrary("Fifp");}publicnativevoidRESET();}我从中制作了一个.h文件,并编译了它。我还制作了一个桥接文件myBridge.c:#include#include"TestJni.h"externvoidRESET();JNIEXPORTvoidJNICALLJava_TestJni_RESET(JNIEnv*env,jobj

java - 在 VisualStudio 2003 中调试 JNI 代码

如何在不使用eclipse的情况下调试VisualStudio2003中的JNI代码? 最佳答案 http://www.velocityreviews.com/forums/t152740-jni-debugger.htmlSUMMARY:Basically,theideaisthatyoustartyourJavaprogramunderEclipse,andthentellVCtoattachtotherunningprocesstoo. 关于java-在VisualStudio20

java - 使用 Windows 服务调用使用 JNI 和 LoadLibrary 的 Java 程序的问题

我正在创建一个调用java程序的Windows服务程序。这是部分代码,hModule是一个全局变量,在ServiceStart中调用了LoadLibrary,之后调用了invokeJVM。我设法启动了该服务并且它运行良好,但是,每当我停止该服务时,它都会给我一个错误:Windows无法停止本地计算机上的服务错误1067:Windows服务意外终止添加了额外的日志记录后,发现意外终止错误发生的地方是invokeJVM函数的返回。当我检查事件查看器时,它给了我一些BEX错误,谷歌搜索表明这是一个堆栈溢出错误,但我无法确定它的原因,知道为什么吗?HMODULEhModule;VOIDServ

c++ - 如何使用 assert(..) 函数避免 CRT 对话框

在Windows中有没有一种方法可以避免使用assert(..)函数失败时出现CRT对话框?我喜欢将错误消息打印到控制台。如果我们不在优化版本中定义NDEBUG来实现此目的,是否可以使用CrtReportMode(..)?-卡特里 最佳答案 您可以使用_CrtSetReportMode和_CrtSetReportFile将输出发送到文件(在本例中为stderr)。_CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE)_CrtSetReportFile(_CRT_ASSERT,_CRTDBG_

java - JNI 中的 JVM-Crash 调用 ReleaseStringUTFChars,仅在 Windows 7、Windows XP 上正常

以下是通过JNI从JavaJVM调用的C++代码的摘录:(JNIEnv*pJniEnv,jobject,jstringpDllName){stringdllName(pJniEnv->GetStringUTFChars(pDllName,NULL));//stuffhappensherelikeHINSTANCEloadedDll=LoadLibrary(dllName.c_str());pJniEnv->ReleaseStringUTFChars(pDllName,dllName.c_str());return...;}这在WindowsXP中有效,但在Windows7中崩溃并出现访

java - 从 JNI 中的 native 代码退出会杀死 Java 应用程序

我正在从JNI调用我的nativedll的方法。它工作正常,但在我的native代码中的一个地方,我正在调用exit(1)以便native代码停止工作但发生的事情是它也导致退出我的java应用程序。我错过了什么吗?JNI中是否有任何方法可以让我只能终止native代码而不是整个Java应用程序?编辑:基本上我是用native代码加密文件。我希望它在有人从java取消操作时停止加密。如有任何帮助,我们将不胜感激。 最佳答案 JNInative代码和JVM在同一个进程中运行。由于exit关闭进程,它也将结束JVM。杀死在native代码

c# - Debug.Assert 似乎不适用于 Mono

考虑以下C#程序:usingSystem;usingSystem.Diagnostics;namespaceTest{classMainClass{publicstaticvoidMain(string[]args){Debug.Assert(false);Debug.Fail("fail!");Console.WriteLine("HelloWorld!");}}}编译时使用:dmcs-debug-d:DEBUGMain.cs然后运行它:mono--debugMain.exe断言和失败似乎被忽略了。输出只是:HelloWorld!我在StackOverflow上查看了其他相关问题,但

c# - 在循环中使用 NUnit Assert 时,如何在错误消息中显示更多信息?

考虑以下代码:[Test]publicvoidWidgetTest(){foreach(Widgetwidgetinwidgets){Assert.AreEqual(0,widget.SomeValue);}}如果其中一个断言失败,我将收到一条非常无用的错误消息,如下所示:1)TestFailure:WidgetTest.TestSomeValueExpected:0Butwas:1atWidgetTest.TestSomeValue()那么,问题是,如何让NUnit显示更有用的信息,例如小部件的名称或循环的迭代等?即使是行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代

c# - 单元测试是否使 Debug.Assert() 变得不必要?

我准备好麦康奈尔的“CodeComplete”已经有一段时间了。现在我在Hunt&Thomas的“ThePragmaticProgrammer”中再次阅读它:使用断言!注意:不是单元测试断言,我的意思是Debug.Assert()。遵循SO问题WhenshouldIuseDebug.Assert()?和Whentouseassertionoverexceptionsindomainclasses断言对开发很有用,因为可以很快找到“不可能”的情况。而且它们似乎很常用。据我了解,断言在C#中通常用于检查输入变量的“不可能”值。为了使单元测试尽可能简洁和独立,我使用null和“不可能的”虚拟

c# - C# 可以提供 static_assert 吗?

我正在寻找一种在C#编程语言中进行编译时断言的方法,例如C++的BOOST库或新的C++0x标准提供的断言。我的问题是双重的;这可以在标准的、可移植的C#中实现吗?或者,是否可以通过对给定C#编译器的怪癖进行不可移植的假设来实现该行为?在谷歌上快速搜索发现以下链接指向一个technique,我不确定其标准合规性和兼容性。 最佳答案 该方法与其他没有内置静态断言的语言(Delphi、较旧的C++等)相同:找到一种机制将要断言的条件转换为编译器不满意的条件,如果条件是假的。对于C#,最容易利用的机制之一是关于将负文字/常量分配给无符号类