我使用Java(JNA)在第三方.dll文件中使用函数。我正在调用的函数正在返回整数值1。
阅读之后,我发现如果一切正常运行,这个返回值传统上为0。
想知道是否总是如此,或者是否有任何方法可以确定它应该是什么?
在.dll捆绑的.h文件中,它有注释
// rc:EXIT_SUCCESS表示NO ERROR
在功能之后。
答案 0 :(得分:0)
检查实际的dll文档,应该有办法告诉什么是错的。 如果没有任何帮助尝试调用GetLastError()WinAPI - 可能会报告一些有意义的错误代码。 还要尝试在函数调用期间查看调试输出 - 即使在Release build
中也可能存在一些跟踪答案 1 :(得分:0)
是的,零通常意味着在C / C ++世界中取得成功。
在异常处理之前的日子里,您必须有一种方法来指示失败,并且返回值几乎保留为失败/成功。至于'1'的含义,你将不得不查看返回'1'的函数的dll标题,看看它们是否包含有关错误条件的任何内容。没有看到代码或了解更多有关dll以提供任何简单答案的可能性太多。
该功能的名称是什么?它试图做什么?如果你知道这个功能失败了怎么办?