DLL로 만들 기능이있는 .lib가 있습니다.DLL에서 함수를 내보낼 수 없습니다.
프로젝트 속성에서 나는 의 두 가지 작업을 수행했습니다. 1. C/C++ -> 일반 -> 추가 디렉토리 : .h 파일의 경로를 추가했습니다. 링커 -> 일반에서 2 -> 추가 Dependies는 :
그럼 내가 .H 파일
#ifndef _DFUWRAPPER_H_
#define _DFUWRAPPER_H_
#include <windows.h>
#include "DFUEngine.h"
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) void helloworld(void);
__declspec(dllexport) void InitDLL();
#ifdef __cplusplus
}
#endif
#endif
을 만들어 .cpp 파일을 만든 lib 디렉토리 파일의 경로를 추가
#include "stdafx.h"
#include "stdio.h"
#include "DFUWrapper.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
void helloworld(void)
{
printf("hello world DFU");
}
DFUEngine* PyDFUEngine()
{
return new DFUEngine();
}
void delDFUEngine(DFUEngine *DFUe)
{
DFUe->~DFUEngine();
}
void PyInitDLL(DFUEngine *DFUe)
{
return DFUe->InitDLL();
}
필자는 helloword 함수를 사용하여 테스트를 수행했습니다. 이 함수는 DLL에서 볼 수 있지만 InitDLL 함수에서는 볼 수 없습니다. 어떻게이 문제를 해결할 수 있습니까? 사용하여 함수를 선언
비주얼 스튜디오, 아마. 어떤 버전입니까? 그 기능을 "볼"수 없다는 것은 무엇을 의미합니까? 일부 데이터/오류/출력 표시. –
VS2005를 사용 중입니다. 나는 의존성 워커를 조사하고있다. halloworld() 함수는 볼 수 있지만 InitDLL은 안됩니다. – user3484496
.c 파일에서'PyInitDll'입니다. 당신의 .h는'InitDll'입니다. – agbinfo