【发布时间】:2014-03-27 16:24:35
【问题描述】:
我想在我的 WindowsPhone 8 应用程序中使用本机 C++ 代码。为此,我确实构建了一个“Windows Phone 运行时组件”来包装我的 C++ 代码。当我编译运行时组件时,我只需使用 Visual Studio 编译我的本机代码。这需要一些调整,但 Visual Studio 现在正在编译。
现在我的本机代码需要 SQLite。对于其他平台,我可以用我的本机代码编译 sqlite3 并让它运行。但我就是无法让它与 Visual Studio 一起工作。我的原生类是这样的:
#include "Main.h"
#include <sqlite3.h>
#include <stdlib.h>
#include <iostream>
//visual studio needs additional imports for std
#if defined(_MSC_VER)
#include <time.h>
#include <string>
#endif
void NativeClass::testDataBase() {
//some SQL stuff here
}
我尝试过的:
-
我的第一个想法是尝试像在 iOS 和 Android 上一样解决这个问题。我试图包含 sqlite 标头和 .c 文件。我还尝试了here 监听的所有选项和编译器标志。当我使用 Win32 项目执行此操作时,它编译得很好。但是当我尝试为我的运行时组件编译它时,我得到了很多属于这样的行的错误:
{ "AreFileApisANSI", (SYSCALL)AreFileApisANSI, 0 },错误是:
Error 2 error C2065: 'AreFileApisANSI': undeclared identifier 下一个想法是只导入标头并链接二进制文件。由于存在许多不同的错误和问题,这一直失败。通常回到问题上来,我无法编译或找到一个工作和为 arm 编译的库。
编辑:3。 我尝试过但忘记提及的其他事情。我尝试在 NuGet 管理器中使用 SQLite 包。但我不能使用 sqlite-net-wp8 包。我收到一个错误,说明我已经定义了“Native:0.0v”或类似的东西。不幸的是,这个错误对我没有帮助。
我在这里寻求解决此问题的方法。这可能是如何让我的一种方法发挥作用的解决方案。或者它可能是一种完全不同的方法来解决这个问题。
我正在使用 Visual Studio 2013。我在 Mac 上的 Parallels 中运行 Windows。
【问题讨论】:
标签: c++ sqlite windows-phone-8 windows-runtime visual-studio-2013