我正在尝试编写一个简单的SGX项目作为开始。所以我有这个主要的主机应用程序例程,我已经从Lars Richter's blog中复制了很多例程:

#define ENCLAVE_FILE _T("Enclave.signed.dll")
#include <tchar.h>
#include <cstdio>
#include "sgx_urts.h"
#include "Enclave_u.h"

int main()
{
    sgx_enclave_id_t   eid;
    sgx_status_t       ret = SGX_SUCCESS;
    sgx_launch_token_t token = { 0 };
    int updated = 0;

    ret = sgx_create_enclave(ENCLAVE_FILE, SGX_DEBUG_FLAG, &token, &updated, &eid, NULL);

    if (ret != SGX_SUCCESS) {
        printf("\nApp: error %#x, failed to create enclave.\n", ret);
    }


    scanf("\n");

    return 0;
}


它可以很好地编译(我在Visual Studio 2015中使用了Intel C ++ 17.0编译器),但是不会加载该区域。我收到以下错误消息:

[sgx_create_enclavew ..\urts\win\urts.cpp:195] Couldn't open file with CreateFile()

App: error 0x200f, failed to create enclave.

最佳答案

转到app_test_save项目设置。在“调试”下,将工作目录更改为$(SolutionDir)Debug。该答案假定两个项目app_test_save和enclave_test_save都属于同一解决方案。

关于c++ - 加载Enclave时出错:无法使用CreateFile()打开文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41944179/

10-16 20:19