Keresés
Hírlevél
 
Kiemelt témák
»10 éves a prog.hu
»Párhuzamos programozás
»Párhuzamos végrehajtás == szemléletváltás!
Állás/munka
»Tanárt keresek
»Port.hu film tartalmának kinyerése
»PHP programozó kerestetik
»Fejlesztői megbízásokat/munkát keresek
»Senior .Net fejlesztő szabad kapacitással
» több téma
Tudástár
? torrent file helyett txt-t
?PHP:keresés szó szerint...
*PHP if-nél megakadtam
Mobilinternet használata robotokban
?Delphi Form méretezési probléma
?HelpProvider alkalmazás .HLP fájlban
2 oldalas form
SetFocus hatástalan
?XP-n megy Win7-en megakad (Delphi)
?Hiányos mp3 hallgatás telefonról! C#
A legalsó scrollTop értéket nem veszi figyelembe
3 dív pozicionálása (2 egymás mellé, 1 ezek alá)
?Curl login Joomla-ba (PHP)
*Java Axis webservice file küldés és fogadás
?C# scrollozható form
» több téma
Társalgó
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»Get flood elleni védekezés
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
»Firebird - Több adatbázis vagy egy?
»Clipper kontra XP
»Webshop ár kb...
»Hogy működik egy apróhirdető oldal (MySQL)?
»Körlevél script PHP + MySQL
»New project probléma VS 2010 C#
»Kezdőknek:grafikus felület választás
» több téma
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    

Tudástár

»

Visual C++ mysql kapcsolódási hiba

»

Visual C++ mysql kapcsolódási hiba

nyitotta: Enderpt, idő: 2012.02.06., moderátor: moderator, megoldás elfogadva: 2012.02.08. 12:06
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » C++
Programozási nyelvek » Visual C++
Adatbázisok » MySQL

Sorrend:
Időzóna:
Blokkméret:
Oszd meg másokkal is!
Az a gondom, hogy nem tudok kapcsolódni a mysql adatbázishoz Visual c++-al, pontosabban már a kód fordítása hibaüzenettel leáll. A neten már 2 napja keresgélek megoldás után, de semmi nem segített, mi lehet a baj?

Ez a program:

#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <stdarg.h>
#include <windows.h>
#include <mysql.h>

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

#define SERVER "localhost"
#define USER "root"
#define PASSWORD "root1234"
#define DATABASE "test"

#define WIN32_LEAN_AND_MEAN

#define MT4_EXPFUNC __declspec(dllexport)



MT4_EXPFUNC int __stdcall kapcsolat()
        {

        // create a pointer of the type mysql
        MYSQL *conn;
        // initialize your mysql connection
        conn = mysql_init(NULL);
        // connect to your database
        if (conn == NULL) return -99;
        if (   mysql_real_connect(conn,SERVER,USER,PASSWORD,DATABASE,0,NULL,0) == NULL  )
                return -100;
        //        mysql_errno(conn);
        else return 100;
        mysql_query(conn,"insert into users  (id, name) values( 11, 'sirKahn');");
        // close the connection
        mysql_close(conn);
        return 1;
       
        }

A hibaüzenet pedig ez:

1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_close@4
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_query@8
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_init@4
MySQL library-t nem adtad hozzá a projekthez vagy a library elérése roszz?
Visual Studio (Solution->Properities->Configuration Properties-> Linker előzmény
A linkerben az additional dependencies-nél ez van: libmysql.lib
Erre gondoltál? előzmény
Igen.
Az elérési út jó a
Property->Linker->Additional Library Directories előzmény
Nem volt beállítva, így megadtam neki azt az utat, ahol a lib file van, mégis ugyan az a hiba. előzmény
Kicsit még keresgéljél, valószínűleg amellett valahol van egy olyan opció is, hogy 'add library to project', ott add meg a mysql.lib-et (vagy amid van). előzmény
Pedig vagy a lib nincs meg, vagy az útvonal rossz.
Látni kellene a projekt fájlt. előzmény
Ezt?

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tibitest", "Tibitest\Tibitest.vcxproj", "{5AC07B74-8EA2-42AF-B669-F2D71894EE7D}"
EndProject
Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Win32 = Debug|Win32
                Release|Win32 = Release|Win32
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
                {5AC07B74-8EA2-42AF-B669-F2D71894EE7D}.Debug|Win32.ActiveCfg = Debug|Win32
                {5AC07B74-8EA2-42AF-B669-F2D71894EE7D}.Debug|Win32.Build.0 = Debug|Win32
                {5AC07B74-8EA2-42AF-B669-F2D71894EE7D}.Release|Win32.ActiveCfg = Release|Win32
                {5AC07B74-8EA2-42AF-B669-F2D71894EE7D}.Release|Win32.Build.0 = Release|Win32
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
EndGlobal
előzmény
Nem.
Tibitest.vcxproj előzmény
Tessék:


<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectGuid>{5AC07B74-8EA2-42AF-B669-F2D71894EE7D}</ProjectGuid>
    <RootNamespace>Tibitest</RootNamespace>
    <Keyword>MFCDLLProj</Keyword>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <CharacterSet>Unicode</CharacterSet>
    <UseOfMfc>Static</UseOfMfc>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <UseOfMfc>Static</UseOfMfc>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <LinkIncremental>false</LinkIncremental>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <PrecompiledHeaderFile>
      </PrecompiledHeaderFile>
      <PrecompiledHeaderOutputFile>
      </PrecompiledHeaderOutputFile>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <ModuleDefinitionFile>.\Tibitest.def</ModuleDefinitionFile>
    </Link>
    <Midl>
      <MkTypLibCompatible>false</MkTypLibCompatible>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </Midl>
    <ResourceCompile>
      <Culture>0x0409</Culture>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ResourceCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>
      </PreprocessorDefinitions>
      <AdditionalIncludeDirectories>C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\MySQL\MySQL Server 5.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PrecompiledHeaderFile>
      </PrecompiledHeaderFile>
      <PrecompiledHeaderOutputFile>
      </PrecompiledHeaderOutputFile>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <ModuleDefinitionFile>.\Tibitest.def</ModuleDefinitionFile>
      <AdditionalDependencies>libmysql.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AdditionalLibraryDirectories>C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\MySQL\MySQL Server 5.5\include;C:\Program Files\MySQL\MySQL Server 5.5\include\mysql;C:\Program Files\MySQL\MySQL Server 5.5\lib\debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
    </Link>
    <Midl>
      <MkTypLibCompatible>false</MkTypLibCompatible>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </Midl>
    <ResourceCompile>
      <Culture>0x0409</Culture>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ResourceCompile>
  </ItemDefinitionGroup>
  <ItemGroup>
    <None Include="ReadMe.txt" />
    <None Include="Tibitest.def" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="Tibitest.cpp" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>
előzmény

<AdditionalLibraryDirectories>C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\MySQL\MySQL Server 5.5\include;C:\Program Files\MySQL\MySQL Server 5.5\include\mysql;C:\Program Files\MySQL\MySQL Server 5.5\lib\debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>


Vedd ki a
"
C:\Program Files\MySQL\MySQL Server 5.5\include;C:\Program Files\MySQL\MySQL Server 5.5\include\mysql;
"

Innen meg szed ki a library elérést:
<AdditionalIncludeDirectories>C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\MySQL\MySQL Server 5.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>



Biztos itt van a mysql lib?
C:\Program Files\MySQL\MySQL Server 5.5\lib;
vagy itt:
C:\Program Files\MySQL\MySQL Server 5.5\lib\debug;
??

Talán próbáld máshelyre rakni a lib-et pl. a projekted alá és beállítani oda a lib. könyvtárat. előzmény
És ha nem akarsz szóközöket a fájlnevek belsejében (nem mindenki akar), írd így:
c:\progra~1\mysql\mysql~1.5\include
c:\progra~1\mysql\mysql~1.5\lib
előzmény
A libmysql.lib itt van, biztos, mert megnéztem:

C:\Program Files\MySQL\MySQL Server 5.5\lib

Megpróbálom kitörölgetni őket előzmény
Kipróbáltam, hogy kitöröltem őket, akkor a mysql.h-t hiányolta, amikor megadtam az elérési utat, akkor a libmysql.lib-et hiányolta, azt meg bemásoltam a project könyvtárába, akkor megint előjött az eredeti 4 hibaüzenet. előzmény
Ahhoz hogy teljesen biztos legyél, hogy az útvonal helyes a lib(ek) felé csináld így:

#pragma comment ( lib, "C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib" )

#include "stdafx.h"
#include <stdlib.h>
...
Ha a fordító azt mondja, hogy nincs (vagy nem létezik vagy nem tudja megnyitani vagy ilyesmi) a libmysql.lib, akkor nem jó az útvonal. előzmény
Már nem tudtam szerkeszteni az előbbi hsz-t.

Töröld ki a WIN32_LEAN_AND_MEAN preprocesszort is, semmi szükség itt rá, sőt most kifejezetten nem kell! Az a windows.h-ra van hatással, de te azt az include után definiáltad, így teljesen értelmetlen.
Ahogy előttem is mondták, ne keverd az additional include ill. library könyvtárakat! Két teljesen különböző dolog.
Tehát ahogy a nevük is mondja, az include directories, csak headereket tartalmazó könyvtárakra utaljanak, a lib directories pedig csak lib-eket.
Még valami, ez mit csinál?
        if (   mysql_real_connect(conn,SERVER,USER,PASSWORD,DATABASE,0,NULL,0) == NULL  )
                return -100;
        //        mysql_errno(conn);
        else return 100;
Mindenképp return? előzmény
Igen, az lenne az egész lényege, hogy az adatbázisból kiolvasott egyetlen bájttól függően igen, vagy nem választ adjon vissza az őt meghívó ex4 programnak. előzmény
De akkor minek van ott a mysql_query ill. a mysql_close?
Na mindegy, megcsináltad amit mondtam? előzmény
Kitöröltem ezt: WIN32_LEAN_AND_MEAN
és az #include <windows.h> -t is
Valamint a c++--> general --> additional include dir-ből ezt:
C:\Program Files\MySQL\MySQL Server 5.5\lib

meg a linker --> additional library dir-ből ezt
C:\Program Files\MySQL\MySQL Server 5.5\include

Szóval most az includeban, csak a headerekre mutató link van, a lib-nél meg csak a library-kra mutató, de így is a kezdeti 4 hiba jön elő.

Hja, és beletettem a legelejére ezt is: #pragma comment ( lib, "C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib" ) előzmény
Kitöröltem ezt: WIN32_LEAN_AND_MEAN
és az #include <windows.h> -t is


Ki mondta, hogy töröld a windows.h-t?

Ember, te olvasol? Fennebb írtam, hogy másold be ezt az #include "stdafx.h" elé:
#pragma comment ( lib, "C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib" )
Direkt kinéztem azt az útvonalat amit te használtál és azt írtam példaképpen. Csak copy-paste dolgod van.

Mielőtt megint valami butaságot írnál, olvasd el ezt:
@sanya hozzászólása Enderpt (01:44) részére    előzmény | privát | 2012.02.06. 21:01 | válasz
Ne siess a válasszal. Olvasd el, próbáld ki, nézz utána a neten és ha akkor sem megy, akkor írd le pontosan mi a baj, mit próbáltál ki, hogyan próbáltad stb, mert megváltozik véleményünk rólad.
Ok? előzmény
Oda másoltam közvetlenül eléje, és vissza tettem a #include <windows.h> -t is, most így néz ki:

#pragma comment ( lib, "C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib" )
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <mysql.h>
#include <windows.h>

#define SERVER "localhost"
#define USER "root"
#define PASSWORD "root1234"
#define DATABASE "test"

de a hiba továbbra is fennáll. előzmény
Melyik hiba?

A windows.h-t a mysql.h előtt includold! előzmény
Felcseréltem a mysql.h-t a windows.h-val, most ilyen:

#pragma comment ( lib, "C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib" )

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <windows.h>
#include <mysql.h>

Ez a hiba:

1>     Creating library C:\Users\Enderpt\documents\visual studio 2010\Projects\Tibitest\Release\Tibitest.lib and object C:\Users\Enderpt\documents\visual studio 2010\Projects\Tibitest\Release\Tibitest.exp
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_close@4
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_query@8
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32
1>Tibitest.obj : error LNK2001: unresolved external symbol _mysql_init@4
1>C:\Users\Enderpt\documents\visual studio 2010\Projects\Tibitest\Release\Tibitest.dll : fatal error LNK1120: 4 unresolved externals
előzmény
__cdecl váltsad át a linkernél Advanced előzmény
Ilyet (__cdecl) nem találtam (Linker --> Advanced)
Amik vannak (kép): előzmény
bemutat_3.png
Bocs...
C/C++-> Advanced előzmény
Át állítottam mind a 2 db másik lehetőségre is, ugyan azt a hibát adja mindegyiknél. előzmény
Mutasd pontosan honnan töltötted le a mysql.lib-et. előzmény
@sanya kérdését kiegészítem.
Innen töltötted le?
itt előzmény
Nem, hanem innen, a mysql 5.5.2-t 64 bites rendszerhez az msi installert:

Link

De megvan a connector is, azt onnan szedtem le. előzmény
Oszd meg másokkal is!
Belépés
E-mail cím:
Jelszó:

cvonline.hu
»iOS fejlesztő
»Senior web programozó
»Java fejlesztő (Bécs)
»Java fejlesztő (front-end, backend)
»PHP fejlesztő (Ausztria, Németország)
»Solaris rendszermérnök
» még több állás
Kérdésed van?
Problémád, kérdésed van? Segítünk neked is. Csak kattints ide!
RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Árnyék1.100
»silentworks910
»Robi80910
»szabofe860
»bubori.attila760
»djjjozsi680
»Galovics660
»Riha590
»Frostech0560
»Csaboka2550
A nap kifejezései
»Adatszegmens
»Konstans
»Makró
» ugrás a wikire
Hírek
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
»Vizuális felülettervezőt adott ki .NET-es Android-alkalmazásfejlesztéshez a Xamarin
» több hír
PC Fórum hírek
»Elvennék és felhasználóinak adnák a Facebook összes pénzét
»Rejtélyes ikont dugdosgat a Microsoft a Windows 8-ban
»Út a Windows 8-ig - a Windows rendszerek három évtizedének története, képekben
»Mától bárki regisztrálhat a so.cl-ra, a Microsoft közösségi oldalára
»Megérkeztek az első képek az Unreal Engine 4 játékmotorról
»Itt az első videó a a Firefox Windows 8-as változatáról
»Nyártól akár 150 megabites nethozzáférést is ad az Invitel
»Kilenc kritikus biztonsági hibát javít az új Google Chrome
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Muki987
»NevemTeve
»Ivn
»Kelemzol
»Joexy
» ugrás a wikire