我尝试将SQLite与c / c ++一起用于Windows编程: - Code :: Blocks - 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文件的原因。
我该如何覆盖呢?
谢谢!
编辑:我的代码(相关部分):
包含文件“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;
....
答案 0 :(得分:2)
该输出来自sqlite3
命令行shell(shell.c
),它是不合并的一部分(sqlite3.c
)。
您必须告诉Code :: Blocks您的程序是Windows应用程序(从WinMain()
开始而不是控制台应用程序(从main()
开始)。