У меня есть очень короткая программа. По какой-то причине mysql_init всегда возвращает ноль для меня. Согласно документации, это происходит, если не хватает памяти. Как это может быть? Это всего лишь несколько строк кода.
#include "mysql.h"
int main()
{
MYSQL * mysql;
mysql = mysql_init(0);
// here mysql is 0
return 0;
}
Я использую Visual Studio 2015 и lib из mariadb-10.1.8-win32.zip.
редактировать:
Я заставил это работать немного. Я компилировал с настройками отладки в Visual Studio и связал с libmysqld.lib. Я также копирую libmysqld.dll в рабочий каталог. Это привело к тому, что я описал выше.
Я попытался связаться с libmysql.lib и скопировал libmysql.dll в рабочий каталог, и это сработало.
Я не планирую отлаживать MySQL код, поэтому я могу жить с этим. Хотя все еще странно, почему библиотека отладки не работает для того же кода.
если вы свяжетесь с libmysqld.lib, mysql_init вернет NULL или произойдет сбой. Я тестирую на mysql5.6 5.7 win10 vs2017.
правильным является libmysql.lib.
Других решений пока нет …