Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Языки программирования (http://mangos.ytdb.ru/forumdisplay.php?f=34)
-   -   Работа с MySQL через c++ (http://mangos.ytdb.ru/showthread.php?t=1222)

Hantet 23.05.2010 18:40

Работа с MySQL через c++
 
Весь день сижу перед монитором, пытаюсь подключиться к MySQL через c++. Файлы заголовков MySQL дистрибутива скопировал в проект, подключил (ошибок не выдаёт по этому поводу).

Воспользовался чьим-то кодом (на каком-то форуме человек нашёл решение и код якобы рабочий). Собственно я хочу всего-лишь вывести построчно логины аккаунтов с гмлвл > 0.

Во многих (опробованных мною) простейших реализациях подключения c++ к MySQL вылетает очень противная ошибка:


Я использую:
Microsoft Windows XP Professional SP3
Microsoft Visual Studio 2008 Professional Edition (rus).
MySQL 5.1.39-community

Собственно, код:
Код:

#include <stdafx.h>
#include <Winsock2.h>
#include <mstcpip.h>
#include <mysql.h>
#include <errmsg.h>

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;

void exiterr(int err)
{
        fprintf(stderr, "%s\n", mysql_error(&mysql));
        exit(err);
}

void main()
{
        if(!(mysql_real_connect(&mysql,"localhost","mangos","mangos","realmd",3306,NULL,NULL)))
                exiterr(1);
        if(mysql_select_db(&mysql,"realmd"))
                exiterr(2);
        if(mysql_query(&mysql,"SELECT username FROM account WHERE gmlevel > 0"))
                exiterr(3);
        if(!(res = mysql_store_result(&mysql)))
                exiterr(4);
        while((row=mysql_fetch_row(res)))
        {
                for(unsigned int i = 0;i < mysql_num_fields(res); i++)
                        printf("%s\n",row[i]);
        }
        if(!mysql_eof(res))
                exiterr(5);
        mysql_free_result(res);
        mysql_close(&mysql);
}

Помнится, на старом форуме была тема про коннектор, но мне бы хотелось обойтись без подобных реализаций.

Если у кого-то имеется рабочий пример - очень прошу поделиться.
P.s. Выкладывали когда-то давно программку RUDB, она подключалась к БД и заполняла таблицы locales_*. Если у кого имеется код - буду рад покопаться в нём.

Спасибо.

rayco 23.05.2010 19:04

Сам не программист и потому только предположение что это тебе поможет

how-to-connect-c-to-mysql

zergtmn 23.05.2010 19:39

Цитата:

Сообщение от Hantet (Сообщение 7188)
Файлы заголовков MySQL дистрибутива скопировал в проект, подключил

Пропиши необходимые *.lib файлы в настройках компоновщика.
Кажется он называется libmysql.lib.

Hantet 23.05.2010 23:08

Цитата:

Сообщение от zergtmn (Сообщение 7192)
Пропиши необходимые *.lib файлы в настройках компоновщика.
Кажется он называется libmysql.lib.

Благодарю, подключил libmysql.lib и теперь компиляция проходит без ошибок, однако при запуске самой программы вытетает сообщение, мол "Необработанное исключение mysql.exe ... ". Сразу в голову пришло - на машине, где компилируется программа для работы с MySQL должен быть установлен сам сервер? Видимо - это так (ну раз компилятор потребовал подать ему mysql.exe). Пополз скачивать и ставить дистрибутив MySQL, надеюсь поможет.


Upd:
Ан, нет. :(
Попробовал собрать на работающем сервере - один фиг.
Ссылается на _CrtIsValidHeapPointer
*ушёл вылизывать гугл*


Nordway 16.10.2010 14:31

Да простят меня за некропостинг, но мой вопрос не настолько велик чтобы выделять для него целую тему :)

Начал изучать работу MySQL с C++. Работаю в VS2008, использую Windows Forms Application.

на форме есть некий textBox1 и button1. При нажатии на баттон запускается SQL запрос в БД, что-то типо:
SELECT `username` FROM `account` WHERE `id` = '"+textBox1->Text+"'

Но т.к. в mysql_query 2-ой параметр должен быть в const char *q, то ничего не компилируется.

Подскажите как textBox1->Text превратить в const char * для того чтоб вставить в запрос?

Nordway 16.10.2010 14:48

Делал так:

Код:

using namespace System::Runtime::InteropServices;
...
String^ str = textBox1->Text;
IntPtr iptrstr = Marshal::StringToCoTaskMemAnsi(str);
const char* id = static_cast<const char*>(iptrstr.ToPointer());
...
...
Marshal::FreeCoTaskMem(iptrstr);

Ошибки:

Код:

1>c:\documents and settings\nordway\мои документы\visual studio 2008\projects\mysql\mysql\Form1.h(145) : error C2679: binary '+' : no operator found which takes a right-hand operand of type 'const char *' (or there is no acceptable conversion)
1>        could be 'built-in C++ operator+(volatile const System::Object ^, volatile const System::String ^)'
1>        or      'built-in C++ operator+(volatile const System::String ^, volatile const System::Object ^)'
1>        or      'built-in C++ operator+(volatile const System::String ^, volatile const System::String ^)'
1>        while trying to match the argument list '(System::String ^, const char *)'


P.S. Объедините в 1 пост, какой-то глюк с форумом был.

LordJZ 16.10.2010 15:00

1. Это не чистый C++, по-другому со строкам работать надо.
2. В C++ конкатенация строк делается через strcat или так: std::string a; a + "asdasd";
3. System::String^ можно складывать, а заданные кавычками строки, которые автоматически делаются const char*, можно инициировать через S префикс: S"asdasd"

Lordronn 16.10.2010 16:25

У меня есть вопрос. Сделал подключение к MySQL на C#. Вот сделал я запрос, извлек его, описал структуру БД. А как перебирать темплейты, ибо ума хватило только запихнуть в цикл все, и извлекать запросы где ентри увеличивается на 1 за цикл. Сами понимаете это ужасно медленно. Работать конечно можно, но когда надо перебрать 40к запросов, то придется на день комп оставлять, на столько все медленно.

Konctantin 16.10.2010 16:46

Надо выгрузить результат запроса в коллекцию и не париться

Lordronn 26.10.2010 20:14

Крашит программу из-за такой причины: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Использую MySQL connector 6.3.5. Погуглил и выяснил, что такая проблема из-за того, что запрос не успевает пройти(у меня это селект большой таблици). Там советуют установить connection timeout побольше. Повышал его с 30 до 150 000.Повышал постепенно, но каждый раз программа крашилась. В консоли запрос проходит очень быстро.
Вот конфиг подключения, если нужен
const string connectionInfo =
Код:

("host=127.0.0.1;port='3306';database='mangos';UserName='root';Password='root';Connection Timeout='150000';");

Konctantin 26.10.2010 20:32

делал полный селект из таблиц го и кричеров, никаких проблем не было...

Lordronn 26.10.2010 20:41

Крашит только при таком селекте

Код:

SELECT * FROM mangos.gameobject_template WHERE entry IN(SELECT entry FROM mangos.gameobject_template1)

Konctantin 26.10.2010 20:52

для таких целей делают соединения таблиц, а это извращение...

Lordronn 26.10.2010 21:07

Код:

SELECT t1.*, t2.* FROM gameobject_template t1, gameobject_template1 t2 WHERE t1.entry = t2.entry LIMIT 1
Верно я понимаю, я могу воспользоваться 1 запросом, и тогда мне надо будет описать всего 1 таблицу?

Большое спасибо, запрос прошел за пару секунд. Больше не крашит!

Mayss 15.08.2012 05:17

Столкнулся с проблемой, при компиляции проекта "клона mangos", выводит LINK : fatal error LNK1104: не удается открыть файл "libmysql.lib", не могу найти где прописывается путь к данному файлу или где он может быть подключен. Работаю в MVS2010.

Все нашел проблему...
Нужно было добавить недостающие библиотеки в Program Files\Microsoft Visual Studio 10.0\VC\lib

Amaru 15.08.2012 09:51

Нужно было добавить путь к либам mysql в свойствах проекта

lovepsone 02.10.2012 22:37

Я в данный момент использую эти библиотеки! Тут нечего сложного нет! Компилирую в vc++2010...

Visible 01.04.2013 10:06

подключаю mysql.h
Код:

#include "include/mysql/mysql.h"
компилятор ругается на
Код:

typedef struct st_net {
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
  Vio *vio;
  unsigned char *buff,*buff_end,*write_pos,*read_pos;
  my_socket fd;       

папку include/mysql скопировал в проект. и взял из исходников cmangos

lovepsone 02.04.2013 17:02

На сколько я помню класса my_socket там нет... Могу ошибаться. Где вы вообще взяли такой пример? Можно больше кода?
Вроде при создания соединения, mysql сам создает сокет... В Qt все проще...

Visible 02.04.2013 17:18

Цитата:

Сообщение от lovepsone (Сообщение 31010)
На сколько я помню класса my_socket там нет... Могу ошибаться. Где вы вообще взяли такой пример? Можно больше кода?
Вроде при создания соединения mysql сам создает сокет... В Qt все проще...

спасибо вам. Решил задачу таким образом
Код:

namespace _mysql{
typedef SOCKET,UINT_PTR;
#include "include/mysql.h"
}

и все работает. Да не отрицаю, в builder как то все непонятно подключается.

lovepsone 02.04.2013 18:30

Лучше кидайте свой билдер и юзайте визуал студио...

Visible 02.04.2013 20:48

Цитата:

Сообщение от lovepsone (Сообщение 31013)
Лучше кидайте свой билдер и юзайте визуал студио...

если бы я знал с++ как требует VS я б врятли задавался вопросом соединений mysql и моего приложения :) а так студия имеется, кроме консоли пока там ничего не освоил =))) на студии сложнее что либо сделать, поэтому и юзаю билдер. Когда ниб в будущем, как мои знания о СИ улучшатся смогу и на VS сделать.

lovepsone 03.04.2013 12:36

Цитата:

Сообщение от Visible (Сообщение 31014)
если бы я знал с++ как требует VS я б врятли задавался вопросом соединений mysql и моего приложения :) а так студия имеется, кроме консоли пока там ничего не освоил =))) на студии сложнее что либо сделать, поэтому и юзаю билдер. Когда ниб в будущем, как мои знания о СИ улучшатся смогу и на VS сделать.

Я начал изучать с++, а по конкретнее до этого пхп (делфи), далее на базе пхп изучал ООП, т.е. с пхп на с++ переход состоялся очень легко. Если вас консоль не устраивает, юзайте WIN API, MFC, Qt и тд. Поверьте с косоли все программисты начинали. А по мне так на студии намного легче...
А вообще можете почитать учебник http://ru-mangos.ru/showthread.php?t=6092 ... Он для новичка вроде вас, там найдете все что вам нужно.

Visible 03.04.2013 17:11

Цитата:

Сообщение от lovepsone (Сообщение 31021)
Я начал изучать с++, а по конкретнее до этого пхп (делфи), далее на базе пхп изучал ООП, т.е. с пхп на с++ переход состоялся очень легко. Если вас консоль не устраивает, юзайте WIN API, MFC, Qt и тд. Поверьте с косоли все программисты начинали. А по мне так на студии намного легче...
А вообще можете почитать учебник http://ru-mangos.ru/showthread.php?t=6092 ... Он для новичка вроде вас, там найдете все что вам нужно.

Да есть такое, частично распечатанный, кстати, по нему и пытаюсь что нибудь сделать). Консоль нравится со времен моего первого опыта установить Mangos. У меня експресс студия 2012. Буду пробывать сделать в консоли на студии то, что получилось сделать в билдере.

Вот только что то немогу понять, возможно ли сделать нечто подобное?
Код:

TFileStream* fs = new TFileStream("имя_архива_на диске.zip", fmCreate|fmOpenWrite); //
IdHTTP1->Get("http://site.com/имя_архива_на_сервере.zip", fs);
delete fs;

но только через консоль на VSE =)

Evgeniy 03.04.2013 17:31

Цитата:

Сообщение от Visible (Сообщение 31024)
Вот только что то немогу понять, возможно ли сделать нечто подобное?
Код:

TFileStream* fs = new TFileStream("имя_архива_на диске.zip", fmCreate|fmOpenWrite); //
IdHTTP1->Get("http://site.com/имя_архива_на_сервере.zip", fs);
delete fs;

но только через консоль на VSE =)

Через библиотеки boost::asio, libcurl - и т.п. и т.д.

TOM_RUS 03.04.2013 18:38

А чем не устраивает URLDownloadToFile? Зачем использовать всякие левые библиотеки для таких простых вещей?

Visible 03.04.2013 19:06

Цитата:

Сообщение от TOM_RUS (Сообщение 31026)
А чем не устраивает URLDownloadToFile? Зачем использовать всякие левые библиотеки для таких простых вещей?

подключил.
Код:

#include <urlmon.h>
#pragma comment (lib, "urlmon.lib")

Работает. А я уже начал скачивать библиотеки=) думаю мне пока до подключений библиотек рановато. Это бы освоить=)
но вот только 1 минус, прогресс загрузки невиден. Можно это хоть как то вывести?
Почитал документацию. но что то с IBindStatusCallback разобраться немогу. Качаю так:
Код:

URLDownloadToFile( 0, L"отсюда", L"сюда", 0, 0);

Evgeniy 03.04.2013 19:11

Цитата:

Сообщение от TOM_RUS (Сообщение 31026)
А чем не устраивает URLDownloadToFile? Зачем использовать всякие левые библиотеки для таких простых вещей?

Извиняюсь, мой уровень с++ стремится к 0.
Все хорошо пока не окажется, что необходимо использовать прокси(необязательно который прописан в системе), проверять время последней модификации файла, отправлять пост(гет) запросы или проходить авторизацию.

lovepsone 03.04.2013 22:55

Цитата:

Сообщение от Visible (Сообщение 31027)
но вот только 1 минус, прогресс загрузки невиден. Можно это хоть как то вывести?

Для этого можно использовать циклы с паузами и тд.. В консоль выводить черточки... Подумайте сами...К примеру попробуйте реализовать процесс загрузки/выгрузки как в консоли мангоса... А далее пойдет все само собой.А так же старайтесь оптимизировать свой код!

partizanes 03.04.2013 23:46

Готовый класс на C# для примера

TOM_RUS 04.04.2013 01:01

На C# вообще задачу, поставленную в этом топике было бы проще решить...

Visible 04.04.2013 04:02

Цитата:

Сообщение от lovepsone (Сообщение 31030)
Для этого можно использовать циклы с паузами и тд.. В консоль выводить черточки... Подумайте сами...К примеру попробуйте реализовать процесс загрузки/выгрузки как в консоли мангоса... А далее пойдет все само собой.А так же старайтесь оптимизировать свой код!

в том то и дело что неполучается)

Evgeniy 04.04.2013 09:46

Цитата:

Сообщение от Visible (Сообщение 31034)
в том то и дело что неполучается)

Через гугл можно все что угодно найти. А лучше спеки.
Найденый код в тырнете:
Код:

#include <iostream>
#include <windows.h>
#include <conio.h>
#include <urlmon.h>
#pragma comment (lib, "urlmon.lib")

using namespace std;

bool downloading;

class DownloadStatus : public IBindStatusCallback
{
public:


        STDMETHOD(OnStartBinding)(
        /* [in] */ DWORD dwReserved,
        /* [in] */ IBinding __RPC_FAR *pib)
        { return E_NOTIMPL; }

    STDMETHOD(GetPriority)(
        /* [out] */ LONG __RPC_FAR *pnPriority)
        { return E_NOTIMPL; }

    STDMETHOD(OnLowResource)(
        /* [in] */ DWORD reserved)
        { return E_NOTIMPL; }

    STDMETHOD(OnProgress)(
        /* [in] */ ULONG ulProgress,
        /* [in] */ ULONG ulProgressMax,
        /* [in] */ ULONG ulStatusCode,
        /* [in] */ LPCWSTR wszStatusText){
                cout << ulProgress << " " << ulProgressMax << endl;
                return S_OK;
        }

    STDMETHOD(OnStopBinding)(
        /* [in] */ HRESULT hresult,
        /* [unique][in] */ LPCWSTR szError)
        { return E_NOTIMPL; }

    STDMETHOD(GetBindInfo)(
        /* [out] */ DWORD __RPC_FAR *grfBINDF,
        /* [unique][out][in] */ BINDINFO __RPC_FAR *pbindinfo)
        { return E_NOTIMPL; }

    STDMETHOD(OnDataAvailable)(
        /* [in] */ DWORD grfBSCF,
        /* [in] */ DWORD dwSize,
        /* [in] */ FORMATETC __RPC_FAR *pformatetc,
        /* [in] */ STGMEDIUM __RPC_FAR *pstgmed)
        { return E_NOTIMPL; }

    STDMETHOD(OnObjectAvailable)(
        /* [in] */ REFIID riid,
        /* [iid_is][in] */ IUnknown __RPC_FAR *punk)
        { return E_NOTIMPL; }

    // IUnknown methods.  Note that IE never calls any of these methods, since
    // the caller owns the IBindStatusCallback interface, so the methods all
    // return zero/E_NOTIMPL.

    STDMETHOD_(ULONG,AddRef)()
        { return 0; }

    STDMETHOD_(ULONG,Release)()
        { return 0; }

    STDMETHOD(QueryInterface)(
    /* [in] */ REFIID riid,
    /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject)
        { return E_NOTIMPL; }
};


int main(int argc, char* argv[])
{
        int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        DownloadStatus ds;
        for(i=1;i<argc;i+=2)
        {
                cout << "\nDownloading " << argv[i] << " to " << argv[i+1];
                URLDownloadToFile(0,argv[i],argv[i+1],0,&ds);
        }
}


Visible 04.04.2013 11:24

Цитата:

Сообщение от Evgeniy (Сообщение 31035)
Код:

int main(int argc, char* argv[])
{
        int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        DownloadStatus ds;
        for(i=1;i<argc;i+=2)
        {
                cout << "\nDownloading " << argv[i] << " to " << argv[i+1];
                URLDownloadToFile(0,argv[i],argv[i+1],0,&ds);
        }
}


Спасибо, вот только немогу разобраться как в функции вывести получаю нечто такое, но компилятор ругается:

Код:

void my_function ()
{
                int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        DownloadStatus ds;
        for(i=1;i<argc;i+=2)
        {
                cout << "\nDownloading " << argv[i] << " to " << argv[i+1];
                URLDownloadToFile( 0, "откуда", "куда", 0, &ds);
        }
}


Evgeniy 04.04.2013 11:40

Цитата:

Сообщение от Visible (Сообщение 31036)
Спасибо, вот только немогу разобраться как в функции вывести получаю нечто такое, но компилятор ругается:

Код:

void my_function ()
{
                int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        DownloadStatus ds;
        for(i=1;i<argc;i+=2)
        {
                cout << "\nDownloading " << argv[i] << " to " << argv[i+1];
                URLDownloadToFile( 0, "откуда", "куда", 0, &ds);
        }
}


А аргументы у функции вообще присутствуют? Не забыл об argv ?
зы какой яп изучали до с++?

Visible 04.04.2013 11:43

Цитата:

Сообщение от Evgeniy (Сообщение 31037)
А аргументы у функции вообще присутствуют? Не забыл об argv ?
зы какой яп изучали до с++?

нет незабыл, просто незнаю как это будет правильно,

Код:

void my_function (int argc, char* argv[])
явно не то

Evgeniy 04.04.2013 11:54

Код:

void my_function (char* from, char* to)
{
  DownloadStatus ds;
  cout << "\nDownloading " << from << " to " << to;
  URLDownloadToFile( 0, from, to, 0, &ds);
}

int main(int argc, char* argv[])
{
        int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        for(i=1;i<argc;i+=2)
        {
                my_function(argv[i],argv[i+1]);
        }
}


Visible 04.04.2013 12:12

Цитата:

Сообщение от Evgeniy (Сообщение 31039)
Код:

void my_function (char* from, char* to)
{
  DownloadStatus ds;
  cout << "\nDownloading " << from << " to " << to;
  URLDownloadToFile( 0, from, to, 0, &ds);
}

int main(int argc, char* argv[])
{
        int i;

        if(argc%2!=1 || argc<3)
                cout << "Error In Command Line" << endl;

        for(i=1;i<argc;i+=2)
        {
                my_function(argv[i],argv[i+1]);
        }
}


все равно немогу разобраться, компилятор ругается. структура проекта

main.php

Код:

#include "function.h"

#include <locale>

void main()
{
        setlocale(LC_CTYPE, ".OCP");

        function();
}

function.cpp содержит функцию скачивания. (функция инициализируется не сразу)

Код:

void my_function (char* from, char* to)
{
  DownloadStatus ds;
  cout << "\nDownloading " << from << " to " << to;
  URLDownloadToFile( 0, "отсюда", L"сюда", 0, 0);
}


Visible 04.04.2013 16:06

Создаю пустой проект (VSE 2012).
Копирую в проект папку mysql из исходников мангоса dep\include\mysql
копирую папку lib из dep\lib

создаю cpp

Код:

#include "mysql/my_global.h"
#include "mysql/mysql.h"

#define SERVER "localhost"
#define USER "username"
#define PASSWORD "password"
#define DATABASE "databasename"
 
int main()
{
    MYSQL *connect; // Create a pointer to the MySQL instance
    connect=mysql_init(NULL); // Initialise the instance
    /* This If is irrelevant and you don't need to show it. I kept it in for Fault Testing.*/
    if(!connect)    /* If instance didn't initialize say so and exit with fault.*/
    {
        fprintf(stderr,"MySQL Initialization Failed");
        return 1;
    }
    /* Now we will actually connect to the specific database.*/
 
    connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0);
    /* Following if statements are unneeded too, but it's worth it to show on your
    first app, so that if your database is empty or the query didn't return anything it
    will at least let you know that the connection to the mysql server was established. */
 
    if(connect){
        printf("Connection Succeeded\n");
    }
    else{
        printf("Connection Failed!\n");
    }
    MYSQL_RES *res_set; /* Create a pointer to recieve the return value.*/
    MYSQL_ROW row;  /* Assign variable for rows. */
    mysql_query(connect,"SELECT * FROM TABLE");
    /* Send a query to the database. */
    unsigned int i = 0; /* Create a counter for the rows */
 
    res_set = mysql_store_result(connect); /* Receive the result and store it in res_set */
 
    unsigned int numrows = mysql_num_rows(res_set); /* Create the count to print all rows */
 
    /* This while is to print all rows and not just the first row found, */
 
    while ((row = mysql_fetch_row(res_set)) != NULL){
        printf("%s\n",row[i] != NULL ?
        row[i] : "NULL"); /* Print the row data */
    }
    mysql_close(connect);  /* Close and shutdown */
    return 0;
}

Получаю ошибки:
Код:

        1        error C1083: Cannot open include file: 'config-win.h': No such file or directory        c:\\consoleapplication1\consoleapplication1\mysql\my_global.h        76        1        ConsoleApplication1
        2        IntelliSense: cannot open source file "config-win.h"        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        76        1        ConsoleApplication1
        3        IntelliSense: cannot open source file "my_attribute.h"        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        619        1        ConsoleApplication1
        4        IntelliSense: cannot open source file "my_dbug.h"        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        655        1        ConsoleApplication1
        5        IntelliSense: identifier "SOCKET_SIZE_TYPE" is undefined        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        694        9        ConsoleApplication1
        6        IntelliSense: #error directive: "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS"        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        819        2        ConsoleApplication1
        7        IntelliSense: #error directive: Neither int or long is of 4 bytes width        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        1004        2        ConsoleApplication1
        8        IntelliSense: identifier "off_t" is undefined        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        1074        9        ConsoleApplication1
        9        IntelliSense: invalid combination of type specifiers        c:\\ConsoleApplication1\ConsoleApplication1\mysql\my_global.h        1103        15        ConsoleApplication1

что то в последнее время ничего неполучается(

lovepsone 04.04.2013 17:50

Либы вы в свойства проекта добавили? Пути к библиотекам указали? Вы сразу почитайте как соединять mysql++ к vc++, а потом задавайте вопросы...Тем более в ошибках всегда кроется ответ.

Для начала разберитесь с этой строкой:
Код:

error C1083: Cannot open include file: 'config-win.h'...
Тут вроде ясно все написано...
P.S. Хотя вы напоминаете мне себя, так же глупил.


Текущее время: 23:51. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS