【发布时间】:2015-10-28 22:54:17
【问题描述】:
我使用的是 Windows 10、Visual Studio 2015。
好吧,无论如何,这是我的代码,我收到了这个错误:
uninitialized local variable 'driver'
我只是按照 MySQL 主网站(示例)上的教程进行操作,这似乎发生了,所以有人可以解释为什么这样做或告诉我一个修复方法。 :) 我试图让它成为静态的,它让它通过,直到我点击按钮然后我得到一个无效的写入内存消息。希望这足以让您告诉我发生了什么事。
LRESULT CALLBACK WndProc(...)
{
...
switch (LOWORD(wparam))
{
case SQL_BUTTON_LAUNCH:
using namespace sql;
Driver *driver;
Connection *con;
Statement *stmt;
ResultSet *res;
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
con->setSchema("test");
stmt = con->createStatement();
res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
delete res;
delete stmt;
delete con;
//SQLConnection();
break;
}
}
【问题讨论】:
-
错误信息告诉你所有需要的。注意 int* ip; *ip = 1;给出同样的错误。
-
我知道我需要给它一个值,但我不知道应该给它什么类型的值。我在调试器中查看了它,驱动程序变量为 NULL(如果我为其分配一个变量,它将编译)。当它尝试使用 Driver->Connect 时,会出现写入内存错误。
-
driver是一个未初始化的指针。语句driver->connect( ... );取消引用指针。该指针指向某处。编译器告诉你,你需要一个Driver类型的实例,你永远不会创建它。 -
这条消息有什么不清楚的地方?