调用头文件中的函数

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;然而,这同样适用于 CC++.