Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb6调用C API-MySQL嵌入式_Mysql_C_Vb6 - Fatal编程技术网

vb6调用C API-MySQL嵌入式

vb6调用C API-MySQL嵌入式,mysql,c,vb6,Mysql,C,Vb6,我正在尝试通过VB6调用约定连接到带有嵌入式服务器的MySQL 5.5.48,但不知道怎么做 MySQL文档在调用MySQL_Init之前声明调用的 int mysql_server_init(int argc, char **argv, char **groups) 在线示例给出了以下C语言代码: static char *server_args[] = { "this_program", /* this string is not used */ "--datadir=

我正在尝试通过VB6调用约定连接到带有嵌入式服务器的MySQL 5.5.48,但不知道怎么做

MySQL文档在调用MySQL_Init之前声明调用的

int mysql_server_init(int argc, char **argv, char **groups)
在线示例给出了以下C语言代码:

static char *server_args[] = {
  "this_program",       /* this string is not used */
  "--datadir=.",
  "--key_buffer_size=32M"
};

static char *server_groups[] = {
  "embedded",
  "server",
  "this_program_SERVER",
   (char *)NULL
};

if (mysql_server_init(sizeof(server_args) / sizeof(char *),
                    server_args, server_groups)) {
//Error Message
}
我已尝试将函数声明为:

Public Declare Sub mysql_server_init Lib "libmySQLd" (ByVal _
    lMYSQL As Long, ByVal abc As Long, ByVal def As Long)

和呼唤

 call mysql_server_init(0, NULL, NULL)


但该计划正在酝酿之中。请帮助我了解vb6和C之间的正确调用约定

从vb6可靠地调用C DLL是一个非常重要的过程,它为VB6提供了从任何标准DLL或COM对象调用几乎任何函数的能力。

它返回一个long,因此您的声明应该在
末尾加上long以指示返回类型。常量
vbnullstring
为空字符串,
vbnullchar
Chr(0)
。至于正确的调用约定,有几种。它是
声明函数
。看见‎ 有关调用约定的概述。x64完全不同,不能从VB6调用。COM是一种更常见的方法-在安装了MySQL驱动程序的情况下使用ADODB对象。一切都在那里,但没有如何传递指针数组,即char**您现在是否使用该项目来调用该函数?我做高级VB6工作已经有一段时间了,所以我忘记了一些细节,但我发现,反复试验往往是找出如何调用不熟悉的外部dll函数的最有效方法。尝试API声明的不同格式。请尝试ByRef而不是ByVal。尝试将VarPtr的结果传递给请求指针的参数。如果有人的答案不能让你更快到达目的地,你最终应该找到正确的组合
 call mysql_server_init(0, NULL, NULL)
 call mysql_server_init(0, chr(0), chr(0))