隐天 发表于 2019-12-13 13:52:01

vc++访问mysql有人弄过么

如果UE4项目是VC++的,在里面去访问mysql数据库,并且可以打包到移动端
我目前用的是蓝图插件,只支持windows平台,不能打包到移动端

rrfetch 发表于 2019-12-13 22:46:53

用 mysql 比较少见啊。如果是游戏自身要存储少量数据,习惯上是用 sqlite,有 ue4 plugin,Win / Linux / Android 都支持。sqlite 项目也制作了一个 sqlite.c 文件,直接把这个文件,添加到 UE4 项目,就可以用了 https://sqlite.org/amalgamation.html

隐天 发表于 2019-12-14 11:47:22

rrfetch 发表于 2019-12-13 22:46
用 mysql 比较少见啊。如果是游戏自身要存储少量数据,习惯上是用 sqlite,有 ue4 plugin,Win / Linux / A ...

那你用sqlite的4.22插件吗,给个我试用试用?:lol

rrfetch 发表于 2019-12-14 22:04:15

我是业余玩一下 ue4,日常是 c++ 项目,也没用过插件。一般就是直接复制 sqlite3.c 和 sqlite3.h 到源文件目录,然后重新生成 Visual Studio 的 sln 文件。在 sqlite.c 的顶部加上防止报错

#if defined(_MSC_VER)
#pragma warning(disable : 4668)
#endif /


然后就可以用 sqlite3 的 C 接口了


#include "dbtestGameModeBase.h"

#include "sqlite3.h"

void AdbtestGameModeBase::StartPlay()
{
        Super::StartPlay();

        UE_LOG(LogTemp, Warning, TEXT("------ GameMode::StartPlay() called."))

        dbrun();
}

// 创建数据库,然后建立一个 user 表
void AdbtestGameModeBase::dbrun()
{
        sqlite3 *db;
        char *errmsg;

        int ret = sqlite3_open("file:../../../../../user.db", &db);

        if (ret != SQLITE_OK) {
                UE_LOG(LogTemp, Warning, TEXT("------ failed to open sqlite db. exit now"))
                return;
        }

        const char * SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT);";
        ret = sqlite3_exec(db, SQL_CREATE_TABLE, NULL, NULL, &errmsg);

        if (ret != SQLITE_OK) {
                UE_LOG(LogTemp, Warning, TEXT("------ failed to create sqlite table. exit now"))
                sqlite3_close(db);
                return;
        }

        sqlite3_close(db);
}

rrfetch 发表于 2019-12-14 22:05:21

不过看你的需求,可能 sqlite 不能满足你的需要

uper2011 发表于 2019-12-24 02:11:04

应该是mysql.h去调用,U3D用过调用mysql、oracle、sqlite,应该是大同小异
页: [1]
查看完整版本: vc++访问mysql有人弄过么