PDA

View Full Version : [C++] Visual studio problema stupido


EnergyVortex
24-11-2010, 19:45
Ciao a tutti, ho imparato le basi della programmazione in C++ usando dev-c++ ma ora voglio provare ad utilizzare Visual studio e sopratutto vorrei riuscire ad interrogare un database utilizzando mysql.
Ho letto in rete che devo scaricare il sourcecode dal sito di mysql e l'ho fatto ma mi sono bloccato qui.
In primis trovo visual studio poco "user friendly" (almeno per me) e se qualcuno di voi mi spiegasse passo primaditutto come impostare un semplice progetto su visual studio mi fa già un favore.
Inoltre vorrei capire dove devo andare a mettere questa cartella di mysql che ho scaricato.
Hel pls!

EnergyVortex
25-11-2010, 07:43
nessuno sa aiutarmi?

tomminno
25-11-2010, 09:06
Per creare un progetto in visual studio è semplice: File->New->Project...
Vai sulla voce Visual C++ e scegli "Win32 Console Application".

Per quanto riguarda MySql cosa hai scricato di preciso? Il Connector per C++?

EnergyVortex
25-11-2010, 09:28
Ok sono riuscito a creare una semplice applicazioen da console , l'unica cosa che non capisco è che anche per far funzionare un semplice cout mi richiede obbligatoriamente questa riga #include "stdafx.h" quando lo stesso codice su altri compilatori funzionava benissimoa anche senza questo header. come mai?
Per quanto riguarda mysql, ho scaricato il file sorgente di mysql++ che è un wrapper per la libreria di mysq in C, in questa cartella vi sono dei file per ogni versione di visual studio (oltre che per altri IDE) e c'è un readme che spiega come far funzionare il tutto solo che alcuni passaggi non sono riuscito a comprenderli.
In particolare dice (traduzione mia) di compilare sia la versione debug che la versione release della libreria,poi dice che queste dll possono avere nomi diversi e che possono essere installate nella stessa directory se desiderato:mysqlpp_d.dll per la versioneDebug emysqlpp.dll per la versione Release .
Poi dice che con la libreria compilata, dobbiamo lanciare almeno gli esempi resetdb e simple1 per assicurarci che tutto funzioni.
Se tutto funziona possiamo lanciare install.hta alla root del progetto per installare i file della libreria e gli headers in una cartella di nostra scelta.

Purtroppo non so come fare queste cose....confido in voi :D

EnergyVortex
25-11-2010, 11:21
Dopo un bel pò di ricerche ho trovato questa guida che spiega passo passo come implementare mysql++ in visual studio, il problema è che mi blocco al penultimo punto perchè nel compilare mysql++.sln il compilatore mi dà svariati errori che,leggendo gli errori dicompilazione, sembrano tutti dipendere dal fatto che non trova mysql_version.h .
Specifico che il file in questione è presente nella cartella include della mia installazione di MySQL.
Vi posto la guida così vedete se il procedimento è giusto :

1) Download mysql++-3.0.9.tar.gz (2.6 MB, 2009.02.04) (http://tangentsoft.net/mysql++/)
2) Use 7-zip to extract twice on the tar.gz
3) Rename folder to “MySQL++” and move this folder to C:\
4) Open MySQL ++ folder and double click install.exe
5) Check Segregate native C++ library builds from C++/CLI (CLR) builds and libraries by platform, then click Install Now.
6) Download mysql-5.0.77 ZIP/Setup.EXE (must be winx86 not winx64) http://dev.mysql.com/downloads/mysql/5.0.html#win32, and choose install complete not typical.
7) Download bakefile_0.2.5.exe from (http://www.bakefile.org) , and install it.
a. Then open CMD, go to C:\ MySQL ++\
b. Then types “rebake” and enter.
8) Open Visual Studio 2008, Create new Win32 Console Application, then go to tool -> Options -> Projects and Solutions -> VC++ Directories
a. Executable files, add “C:\ Program Files\MySQL\MySQL Server 5.0\bin”
b. Include files, add “C:\ MySQL ++\include and D:\Program Files\MySQL\MySQL Server 5.0\include”
c. Library files, add “C:\ MySQL ++\lib”
9) Right click on Solution project and select Property -> Linker -> Input, and then add “mysqlpp_d.lib” in Additional Dependencies.
10) Go to CMD C:\ MySQL ++\, enter “exrun resetdb –u root –p yourpassword”
11) Then open mysql++.sln in C:\ MySQL ++\vc2008\ folder, and rebuild it
12) Go to CMD C:\ MySQL ++\vc2008\debug and type “simple1 –u root –p yourpassword” then it will compiled and get output.

Help pls!!

tomminno
25-11-2010, 11:22
Ok sono riuscito a creare una semplice applicazioen da console , l'unica cosa che non capisco è che anche per far funzionare un semplice cout mi richiede obbligatoriamente questa riga #include "stdafx.h" quando lo stesso codice su altri compilatori funzionava benissimoa anche senza questo header. come mai?


Per altri compilatori suppongo tu ti stia riferendo a DevC++ e basta.
Per usare cout devi includere <iostream>, stdafx è un header generato da Visual Studio da utilizzare per gli header precompilati.


Purtroppo non so come fare queste cose....confido in voi :D

In sostanza devi aprire la soluzione di MySql++ compilare (devi avere installato la versione di sviluppo di MySql, con relativi header e librerie) e copiarti le dll e le lib risultanti nelle cartelle del tuo progetto insieme alle dll di MySql se queste non si trovano già nella path di sistema.
Poi configurerai visual studio sul tuo progetto aggiungendo il path agli header di Mysql++ e configurando tra le librerie dipendenti i .lib di Mysql++ e quelli di MySql.

EnergyVortex
25-11-2010, 11:49
In sostanza devi aprire la soluzione di MySql++ compilare (devi avere installato la versione di sviluppo di MySql, con relativi header e librerie) e copiarti le dll e le lib risultanti nelle cartelle del tuo progetto insieme alle dll di MySql se queste non si trovano già nella path di sistema.
Poi configurerai visual studio sul tuo progetto aggiungendo il path agli header di Mysql++ e configurando tra le librerie dipendenti i .lib di Mysql++ e quelli di MySql.

Beh il punto è che una descrizione come il tuo riassunto per me che non ho molte conoscenze risulta quasi totalmente incomprensibile.
Per quanto riguarda i passi che ho elencato nei post precedenti sono riuscito a capire perchè non mi trovava l'header ed ho risolto ora però non mi trova una libreria che è mysqlpp_d.lib che effettivamente non è presente nella caretella lib di Mysql++...sai dirmi dove trovarla o quale cartella devo aggiungere alle cartelle libreria nelle opzioni di visual studio (ho già aggiunti C.\Mysql++\lib) ??

EnergyVortex
25-11-2010, 15:34
risolto!
avevo sbagliato il passo 5 della guida che ho postato un pò più su, infatti le opzioni da checkare sono 2 mentre ne avevo vista una sola.
La guida è ottima,spero che in futuro possa servire a qualcuno

EnergyVortex
26-11-2010, 10:56
Purtroppo ho un ultimo problema : quando vado ad eseguire l'ultimo passo della guida e cioè quando vado dal prompt in C:\mysql++\vc2008\debug e dò come comando "simple1 –u root –p yourpassword" (ovviamente inserendo la mia password) invece di compilare mi dà il seguente messaggio di errore : DB connection failed: Unknown database 'mysql_cpp_data'

Cosa comporta questa cosa? come posso risolverla?

EnergyVortex
26-11-2010, 11:21
Sono riuscito a risolvere: gli ultimi tre passi dellas guida vanno eseguiti nel seguente ordine 11 , 10, 12 perchè bisogna prima compilare tutto eppoi dare restdb eppoi lanciare simple1.
Lanciando resetdb prima di compilare il tutto mi si chiudeva il prompt e pensavo che era una cosa normale (non sapevo cosa dovevo aspettarmi) quando invece non lo era.
Scusate il monologo :D