引擎世界丨EngineWorld.CN

标题: vc++访问mysql有人弄过么 [打印本页]

作者: 隐天    时间: 2019-12-13 13:52
标题: vc++访问mysql有人弄过么
如果UE4项目是VC++的,在里面去访问mysql数据库,并且可以打包到移动端
我目前用的是蓝图插件,只支持windows平台,不能打包到移动端

作者: rrfetch    时间: 2019-12-13 22:46
用 mysql 比较少见啊。如果是游戏自身要存储少量数据,习惯上是用 sqlite,有 ue4 plugin,Win / Linux / Android 都支持。sqlite 项目也制作了一个 sqlite.c 文件,直接把这个文件,添加到 UE4 项目,就可以用了 https://sqlite.org/amalgamation.html
作者: 隐天    时间: 2019-12-14 11:47
rrfetch 发表于 2019-12-13 22:46
用 mysql 比较少见啊。如果是游戏自身要存储少量数据,习惯上是用 sqlite,有 ue4 plugin,Win / Linux / A ...

那你用sqlite的4.22插件吗,给个我试用试用?
作者: rrfetch    时间: 2019-12-14 22:04
我是业余玩一下 ue4,日常是 c++ 项目,也没用过插件。一般就是直接复制 sqlite3.c 和 sqlite3.h 到源文件目录,然后重新生成 Visual Studio 的 sln 文件。在 sqlite.c 的顶部加上防止报错

  1. #if defined(_MSC_VER)
  2. #pragma warning(disable : 4668)
  3. #endif /
复制代码


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


  1. #include "dbtestGameModeBase.h"

  2. #include "sqlite3.h"

  3. void AdbtestGameModeBase::StartPlay()
  4. {
  5.         Super::StartPlay();

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

  7.         dbrun();
  8. }

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

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

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

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

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

  26.         sqlite3_close(db);
  27. }
复制代码

作者: rrfetch    时间: 2019-12-14 22:05
不过看你的需求,可能 sqlite 不能满足你的需要
作者: uper2011    时间: 2019-12-24 02:11
应该是mysql.h去调用,U3D用过调用mysql、oracle、sqlite,应该是大同小异




欢迎光临 引擎世界丨EngineWorld.CN (https://www.engineworld.cn/) Powered by Discuz! X3.5