c++ - 使用 sqlite 合并执行项目时的命令窗口

标签 c++ c sqlite

我尝试将 SQLite 与 c/c++ 一起用于 Windows 编程: - 代码:: block - GCC 4.7.1(必要时我可以升级)

我下载了合并版,放在我的项目中。 该项目仅包含一个简单的窗口应用程序,在 WM_CREATE 消息中带有 sqlite3_open 命令。

构建工作正常,但发布输出的执行没有任何作用。调试输出的执行给出了一个带有以下文本的命令窗口:

SQLite version 3.8.11 2015-07-02 18:16:02
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

我试图在我的代码中删除 sqlite3 指令,但似乎是我项目中唯一存在的 sqlite 文件是原因。

我该如何覆盖它?

谢谢!!

编辑:我的代码(相关部分):
包含文件“appli.h”:

#ifdef MAIN_CPP
#define EXTERN
#else
#define EXTERN EXTERN
#endif // MAIN_CPP

EXTERN sqlite3 *DBase;

main.cpp :

#include "sqlite3.h"
#include "appli.h"
....
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
                    LPSTR lpszArgument, int nCmdShow)

...
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;

        case WM_CREATE:
            if(sqlite3_open("DBase.sqlite3", &DBase) != SQLITE_OK) {
                MessageBox(hwnd,"Erreur d'ouverture de la base SQLite !!", "CDThèque", MB_OK | MB_ICONERROR);
                PostMessage(hwnd, WM_CLOSE,0,0);
            }
            break;
....

最佳答案

该输出来自 sqlite3 命令行 shell (shell.c),不是合并的一部分 ( >sqlite3.c).

您必须告诉 Code::Blocks 您的程序是 Windows 应用程序(从 WinMain() 开始)而不是控制台应用程序(从 main() 开始)。

关于c++ - 使用 sqlite 合并执行项目时的命令窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31245398/

相关文章:

c中的字符数组处理(将指针复制到字符数组)

c - 什么是在 C 中打开文件?

c - c中抛出异常错误

sqlite - 为什么大型sqlite数据库会导致windows server tcp连接延迟

c++ - 计数倒置归并排序算法中的移位

c++ - vswprintf 崩溃

ios - 如何使用iOS在sqlite中存储双引号

javascript - Heroku 上重启后 Better-SQLite3 数据库重置

c++ - FILE* 无处可去

c++ - 如何在 C++ 中返回所有元素均为 1 的二维 vector