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

Command window when executing a project with sqlite amalgamation

本文关键字:命令 窗口 项目 sqlite 合并 执行 使用      更新时间:2023-10-16

我尝试使用SQLite与c/c++ Windows编程:——代码::块- GCC 4.7.1(我可以在必要时升级)

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

Build工作得很好,但是发布输出的执行什么也没做。调试输出的执行给出了一个命令窗口,其中包含以下文本:

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文件的唯一存在是原因。

我怎样才能重写它?

谢谢!!

编辑:我的代码(相关部分):
包含文件" application .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()启动)。