Добрый день. Я пытаюсь скомпилировать библиотеку для использования в Java. Но появляется ошибка «ошибка LNK2019: неразрешенный внешний символ». В c ++ мало разбираюсь, прошу помощи. Начать файл cpp
//ftrJavaScanAPI.cpp : Defines the entry point for the DLL application.
//
#ifdef _WINDOWS
#pragma warning (disable:4996)
#endif
#include "C:\ftrJavaScanAPI\ftrScanAPI.h"
#include "ftrJavaScanAPI.h"
#ifdef FTR_OS_UNIX
#include <string.h>
#endif
FTRHANDLE hDevice = NULL;
FTRSCAN_IMAGE_SIZE m_ImageSize;
FTR_DWORD m_dwErrCode = 0;
#ifdef _WINDOWS
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#endif
JNIEXPORT jboolean JNICALL Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice(JNIEnv *env, jobject obj)
{
hDevice = ftrScanOpenDevice();
if( hDevice == NULL )
return JNI_FALSE;
return JNI_TRUE;
}
Начните файл .h:
#include <C:\Program Files\Java\jdk1.7.0_05\include\jni.h>
/* Header for class com_Futronic_ScanApiHelper_Scanner */
#ifndef _Included_com_Futronic_ScanApiHelper_Scanner
#define _Included_com_Futronic_ScanApiHelper_Scanner
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_Futronic_ScanApiHelper_Scanner
* Method: OpenDevice
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice
(JNIEnv *, jobject);
Ошибка при отладке
1> ftrJavaScanAPI.obj: ошибка LNK2019: неразрешенный внешний символ ftrScanOpenDevice, указанный в функции Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice
Я понимаю, что необходимо добавить код для экспорта некоторых символов из DLL, чтобы экспортировать библиотеку, но не знаю, как это сделать
ftrScanOpenDevice
не экспортируется должным образом - вы можете увидеть как это сделать здесь - person The Forest And The Trees   schedule 03.12.2013