---
title: "Ett litet exempel på embedded mysql för VC++ 6.0?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/73226-ett-litet-exempel-på-embedded-mysql-för-vc-6-0"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "d98rolb"
published: "2003-04-05T14:37:50.000Z"
updated: "2003-04-05T17:54:55.000Z"
replies: 2
views: 203
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/73226-ett-litet-exempel-på-embedded-mysql-för-vc-6-0"
---

# Ett litet exempel på embedded mysql för VC++ 6.0?

## #1 — d98rolb, 2003-04-05T14:37Z

Jag försöker använda libmysqld.dll från C, men mitt program kraschar när jag kör den här koden. Jag skulle bli tacksam för hjälp!

/\* A Win32 application in Visual C++ is defined \*/
\#include "stdafx.h"
\#include \<Windows.h\>
\#include \<Winbase.h\>

typedef int  (CALLBACK\* SERVER_INIT_FPTR)(int, char \*\*, char \*\*); typedef void (CALLBACK\* SERVER_END_FPTR)(void);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  SERVER_INIT_FPTR mysql_server_init;
  SERVER_END_FPTR  mysql_server_end;

  // Hårdkodning ok, bara ett testprogram
  LPCTSTR dlldir = "D:\\\\Program\\\\mysql\\\\Embedded\\\\DLL\\\\release\\\\libmysqld.dll";
  HMODULE mysql_dll;

  if(mysql_dll = LoadLibrary(dlldir))
  {
    mysql_server_init = (SERVER_INIT_FPTR) GetProcAddress(mysql_dll, "mysql_server_init");
    mysql_server_end =  (SERVER_END_FPTR)  GetProcAddress(mysql_dll, "mysql_server_end");

    // Crash: Unhandled exception in mysql.exe (LIBMYSQLD.DLL): 0xC0000005: Access violation
    mysql_server_init(0, NULL, NULL); 
    mysql_server_end();
    FreeLibrary(mysql_dll);
  }
  return 0;
}

Här är ett utdrag från dokumentationen för mysql_server_init():

"The NULL-terminated list of strings in groups selects which groups in the option files will be active.   See section 4.1.2 \`my.cnf' Option Files. For convenience, groups may be NULL, in which case the \[server\] and \[emedded\] groups will be active. "

Så jag tänket det kan vara ok att skicka NULL som argument till mysql_server_init(). Här är min "C:\\winnt\\my.ini" file:

\#This File was made using the WinMySQLAdmin 1.4 Tool #2003-03-25 16:23:20

\#Uncomment or Add only the keys that you know how works.
\#Read the MySQL Manual for instructions

\[mysqld\]
basedir=D:/Program/mysql
\#bind-address=192.168.0.2
datadir=D:/Program/mysql/data #language=D:/Program/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M

\[WinMySQLadmin\]
Server=D:/Program/mysql/bin/mysqld-nt.exe
QueryInterval=10

\[server\]
language=D:\\Program\\mysql\\share\\swedish

\[emedded\] 

Jag vet int vad jag ska lägga till under \[server\] och \[embedded\] grupperna. Men det kan väl inte vara orsaken till kraschen?

/Roland

Permalänk: https://www.webforum.nu/p/73226

## #2 — niko, 2003-04-05T15:04Z

> Men det kan väl inte vara orsaken till kraschen?

Har ingen egen erfarenhet av embedded mysql. Men det låter väl inte *helt* otänkbart att man kan få en krasch om indata utelämnas på båda ställena?

[Här](http://dbforums.com/archives/t284196.html) är nån som har ett liknande problem (i Delphi) och ett exempel på hur hans em**b**edded-sektion (OBS! Stavning) ser ut.

Permalänk: https://www.webforum.nu/p/1001202

## #3 — PeW, 2003-04-05T17:54Z

Släng ut lite breakpoints och kör debug.

> Så jag tänket det kan vara ok att skicka NULL som argument till mysql_server_init().

 Har inte heller testat embeddedvarianten, men när jag för en tid sedan testade det vanliga C api'et för mySQL var det helt korrekt att skicka "0" som argument i init för att få ett handtag i retur.

Permalänk: https://www.webforum.nu/p/1001319

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/73226-ett-litet-exempel-på-embedded-mysql-för-vc-6-0
