SQLite可以';t使用WinRT设置sqlite3临时目录 我在我的WRRTC++应用程序中开始使用SQLite,我遇到了一些问题。p>

SQLite可以';t使用WinRT设置sqlite3临时目录 我在我的WRRTC++应用程序中开始使用SQLite,我遇到了一些问题。p>,c++,sqlite,windows-runtime,C++,Sqlite,Windows Runtime,首先,上面说您必须使用以下代码设置sqlite_temp_目录: LPCWSTR zTempPath = Windows::Storage::ApplicationData::Current->TemporaryFolder->Path->Data(); char zTempPathBuf[MAX_PATH + 1]; memset(zTempPathBuf, 0, sizeof(zTempPathBuf)); WideCharTo

首先,上面说您必须使用以下代码设置sqlite_temp_目录:

LPCWSTR zTempPath = Windows::Storage::ApplicationData::Current->TemporaryFolder->Path->Data();      

char zTempPathBuf[MAX_PATH + 1];        

memset(zTempPathBuf, 0, sizeof(zTempPathBuf));      

WideCharToMultiByte(CP_UTF8, 0, zTempPath, -1, zTempPathBuf, sizeof(zTempPathBuf), NULL, NULL); 

sqlite3_temp_directory = zTempPathBuf;

当我尝试运行此代码时,最后一行会导致内存访问冲突。

我在构建Windows应用商店应用程序(使用SQLite 3.13.0)时也看到了同样的情况。符号
sqlite3\u temp\u目录
通过导入库正确导入。但是,在运行时解析时,它指向我的EXE模块内的某个位置,而不是sqlite3.dll。调试/发布、x86和x64都会发生这种情况。(注:我正在使用
sqlite3\u mprintf
获取一个指向具有适当生存期的内存的指针;问题中的代码没有,但似乎这不是问题所在)。