调用头文件中的函数
Calling a function in a header file
我想知道如何调用头文件中的函数。
例如..
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() function"。
我该怎么做?
函数以完全相同的方式和方式被调用,无论它是在头文件中声明的,还是在实际的翻译单元本身中声明的。
在这种情况下:
npt_GetVer();
就是这样。函数在哪里声明并不重要,只要它在使用或引用之前声明即可。
唯一的要求是包含头文件。在预处理阶段,所有头文件都被逻辑插入到它们的 #include
引用处,就好像头文件的内容逻辑上替换了 #include
语句一样。最终结果是一个 C++
翻译单元。
如果您手动将所有 #include
语句替换为相应头文件的内容(注意条件编译、包含保护等...),最终结果将完全相同。
您的原始问题被标记为 C++
,但您指的是 C
;然而,这同样适用于 C
或 C++
.
我想知道如何调用头文件中的函数。
例如..
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() function"。 我该怎么做?
函数以完全相同的方式和方式被调用,无论它是在头文件中声明的,还是在实际的翻译单元本身中声明的。
在这种情况下:
npt_GetVer();
就是这样。函数在哪里声明并不重要,只要它在使用或引用之前声明即可。
唯一的要求是包含头文件。在预处理阶段,所有头文件都被逻辑插入到它们的 #include
引用处,就好像头文件的内容逻辑上替换了 #include
语句一样。最终结果是一个 C++
翻译单元。
如果您手动将所有 #include
语句替换为相应头文件的内容(注意条件编译、包含保护等...),最终结果将完全相同。
您的原始问题被标记为 C++
,但您指的是 C
;然而,这同样适用于 C
或 C++
.