我想知道如何在头文件中调用函数。
例如......
example.h
#ifndef NPT_IMM32_H
#define NPT_IMM32_H
#ifndef NPT_API
#ifdef _THIS_IS_IMPLE_
#define NPT_API __declspec(dllexport)
#else
#define NPT_API __declspec(dllimport)
#endif
#endif
NPT_API char * __stdcall npt_GetVer();
我想在calling.c JNI文件中调用npt_GerVer()函数
calling.c
#include <jni.h>
#include <stdio.h>
#include <stdbool.h>
#include <windows.h>
#include "example.h"
JNIEXPORT void JNICALL Java_FingerPrintJNI_GetVer(JNIEnv *env, jobject thisObj){
// Here How to call the npt_GerVer() function ?
return;
}
如您所见,我想在Java_FingerPrintJNI_GetVer函数中调用“npt_GerVer()函数”。 我怎么能这样做?
答案 0 :(得分:2)
以完全相同的方式和方式调用函数,无论是在头文件中还是在实际的翻译单元本身中声明。
在这种情况下:
npt_GetVer();
就是这样。声明函数的位置并不重要,只要它在使用或引用之前声明。
唯一的要求是包含头文件。在预处理阶段,所有头文件都在其#include
引用中进行逻辑插入,就像头文件的内容在逻辑上替换#include
语句一样。最终结果是单个C++
翻译单元。
如果要手动将所有#include
语句替换为相应头文件的内容(注意条件编译,包括警卫等等),最终结果将完全相同。
您的原始问题已标记为C++
,但您指的是C
;但是,这同样适用于C
或C++
。