2017-11-08 6 views
0

gcc을 사용하고 프로그램을 컴파일 중입니다. 나는 enclaveapi로 결정하여 CreateEnclave()을 사용하려고했습니다. 헤더를 추가하면 <enclaveapi.h>이 존재하지 않는다고 말합니다.CreateEnclave() 함수 Windows

<winbase.h> 헤더를 사용할 때 undefined reference to 'CreateEnclave'을 반환합니다. 이 오류를 제거하려면 어떻게해야합니까? gcc main.c -o main.exe -mwindows과 함께 기본 컴파일을 사용하고 있습니다.

+0

이는 MinGW을 의미합니까 :

양자 택일로, 당신은 아마 동적으로 새로운 SDK를 설치하지 않고 API를로드 할 수 있습니까? – kichik

+0

예 sir @kichik – turmuka

+0

그들은 아직 지원하지 않을 수 있습니다. MinGW 업데이트가 도움이되지 않는다면, 당신은 언제나 수동으로'GetProcAddress()'를 사용하여 함수를 호출 할 수 있습니다. – kichik

답변

0

<enclaveapi.h>은 최신 Windows SDK에 있습니다. Download here. SDK는 Windows 코드 작성을위한 최신 헤더 및 라이브러리를 제공합니다. 컴파일러 스위치를 업데이트하여 새 경로를 사용하십시오. gcc``으로

typedef PVOID (__stdcall *create_enclave_type)(HANDLE,LPVOID,SIZE_T,SIZE_T,DWORD,LPCVOID,DWORD,LPDWORD); 
create_enclave_type fnCreateEnclave; 
HMODULE hKernel = LoadLibrary(L"kernel32.dll"); 
fnCreateEnclave = (create_enclave_type)GetProcAddress(hKernel, L"CreateEnclave");