Я использую встроенную библиотеку MySQL и использую P / Invoke для вызова необходимых функций для запуска сервера.Мы решили некоторые проблемы, связанные с этим, в этой теме, однако появилась другая проблема.
Функция mysql_server_init () возвращает 0 в случае успеха и 1 в случае ошибки.К сожалению, в моем коде, когда он возвращает 1, и я использую Marshal.GetLastWin32Error (), код ошибки равен 0. Я предполагаю, что он не обнаруживает ошибку, генерируемую mysql_server_init (), но я в растерянностичтобы узнать, где проблема.
Вот соответствующий блок кода ...
[DllImportAttribute("libmysqld.dll", SetLastError = true)]
static extern int mysql_server_init(int argc, string[] argv, string[] groups);
static string[] server_options = new string[2];
static string[] server_groups = new string[3];
public static bool Start()
{
server_options[0] = "mysql_test"; // not used?
server_options[1] = "--defaults-file=./my.ini";
server_groups[0] = "client";
server_groups[1] = "server";
server_groups[2] = "\0";
if (mysql_server_init(2, server_options, server_groups) != 0)
{
int lastError = Marshal.GetLastWin32Error();
Console.WriteLine("MySQL Library Init Failed with error code: " + lastError);
return false;
}
Console.WriteLine("MySQL Library Started Successfully!");
return true;
}