﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-all gone-随笔分类-C &amp; C++</title><link>http://www.blogjava.net/felicity/category/5831.html</link><description>all gone</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:22:34 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:22:34 GMT</pubDate><ttl>60</ttl><item><title>Qt 4下连接MySQL数据库</title><link>http://www.blogjava.net/felicity/archive/2006/08/28/66280.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Mon, 28 Aug 2006 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/08/28/66280.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/66280.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/08/28/66280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/66280.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/66280.html</trackback:ping><description><![CDATA[前天刚装了个Qt4for windows，发现安装的时候MySQL等数据库插件都没有安装，像Qt X11版一样，都需要自己安装这些插件。 <br /><br />在Qt的安装目录C:\Qt4.1.2\下，有个src目录，进入plugins\sqldrivers\mysql，可以看到两个文件，main.cpp和mysql.pro,很显然要用qmake来完成编译、生成目标。 <br /><br />编译前，首先保证依赖的MySQL头文件和库文件正确。首先MySQL安装目录下的include中的所有文件拷到qmake时能找到的目录下，接着从lib/opt目录下拷出libmysql.a,其实lib/opt下只有libmysql.lib和libmysql.dll，从网上搜了一下找到一个方法从libmysql.dll生成libmysql.a: <br /><br />1 、安装好MySQL （如果不愿意安装，找个libmySQL.dll文件也可以） <br /><br />2、下载Pexports工具 <br /><br />3、转换操作： pexports libmysql.dll &gt; libmysql.def <br /><br />4、使用MinGW的 dlltool转换成为libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k <br /><br />5、尝试是否成功： <br />将生成的libmysql.a 拷到qmake的lib搜索路径下后在plugins\sqldrivers\mysql目录下做： <br />qmake -project <br />qmake <br />make <br /><br />如果再出现象mysql_connect@xx （xx是数字）的错误提示。就执行第6步。 <br /><br />6、修改libmysql.def文件，给mysql_connect加上@xx，即mysql_connect@xx <br /><br />7、重做第4步 <br /><br />8、然后尝试第5步，如果还是出现错误提示。就作第6步。一直到没有错误为止。 <br /><br />最后C:\Qt4.1.2\plugins\sqldrivers下将会生成需要的libqsqlmysql.a和qsqlmysql.dll。 <br /><br />找了一个测试文件，通过。 <br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">#include &lt;QtSql&gt; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#include &lt;QtGui&gt; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />bool createConnection(){ <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />QSqlDatabase db </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> QSqlDatabase::addDatabase(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">QMYSQL</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">db.setHostName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">localhost</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">db.setDatabaseName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">db.setUserName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">db.setPassword(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />if(!db.open()){ <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />QMessageBox::critical(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> QObject::tr(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Database Error</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                              db.lastError().text())</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />return false</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">} <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />QSqlQuery query</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">//query.exec(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">insert into book values( 3, 'title', 'author') </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">query.exec(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select title , author from book </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />while (query.next()) { <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    QString title </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> query.value(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">).toString()</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    QString author </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> query.value(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">).toString()</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />QMessageBox::critical(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> title</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">author)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />} <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />return true</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">} <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />int main(int argc</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">char** argv){ <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />QApplication app(argc</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> argv)</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    if (!createConnection()){ <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />return </span><span style="COLOR: #000000">1</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">} <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    return app.exec()</span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />} <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br /><img src ="http://www.blogjava.net/felicity/aggbug/66280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-08-28 20:57 <a href="http://www.blogjava.net/felicity/archive/2006/08/28/66280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse + CDT + MinGW 下编写QT程序</title><link>http://www.blogjava.net/felicity/archive/2006/06/16/53380.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 16 Jun 2006 11:45:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2006/06/16/53380.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/53380.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2006/06/16/53380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/53380.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/53380.html</trackback:ping><description><![CDATA[
		<p>
				<br />环境：<br />（1）安装Eclipse + CDT + MinGW <br />（2）安装QT for Windows<br />（3）安装QT plugin for Eclipse ：org.eclipse.qt-1.0.2.zip，在Preference里设好相关路径。</p>
		<p>新建一个 QT project，将hello。cpp复制到工程中：<br />#include &lt;QApplication&gt;<br />#include &lt;QPushButton&gt;</p>
		<p>int main(int argc, char *argv[]){<br /> <br /> QApplication app(argc, argv);<br /> <br /> QPushButton hello("Hello world!");<br /> <br /> hello.resize(100, 30);<br /> hello.show();<br /> <br /> return app.exec();<br />}</p>
		<p>build后生成Makefile，新建两个Make Target:all,clean<br />Make all 后发现找不到libQtCored4.a等文件，在QT的lib目录下找到相应的libQtCore4.a，复制后重命名为libQtCored4.a，<br />其他库文件类似，最后编译通过，运行后出现带hello按钮的窗口。</p>
		<p> </p>
<img src ="http://www.blogjava.net/felicity/aggbug/53380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2006-06-16 19:45 <a href="http://www.blogjava.net/felicity/archive/2006/06/16/53380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tmake&amp;Qt开发 </title><link>http://www.blogjava.net/felicity/archive/2005/12/09/23190.html</link><dc:creator>all gone</dc:creator><author>all gone</author><pubDate>Fri, 09 Dec 2005 11:18:00 GMT</pubDate><guid>http://www.blogjava.net/felicity/archive/2005/12/09/23190.html</guid><wfw:comment>http://www.blogjava.net/felicity/comments/23190.html</wfw:comment><comments>http://www.blogjava.net/felicity/archive/2005/12/09/23190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/felicity/comments/commentRss/23190.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/felicity/services/trackbacks/23190.html</trackback:ping><description><![CDATA[使用tmake生成Qt程序的makefile文件 
<P>使用tmake生成Qt程序的makefile文件真的是很简单,本来tmake就是发布Qt那个公司的产品啊. 自己编写.h和.cpp文件时,tmake的用法可以在安装文档里找到. 使用Qt Designer时呢,生成的是.ui文件,这时也可以用tmake的: 假设生成的.ui文件名为mainform.ui,自己写一个简单的main.cpp文件:</P>
<P>#include "mainform.h" </P>
<P>int main(int argc,char **argv)</P>
<P>&nbsp;{ </P>
<P>QApplication app(argc,argv); </P>
<P>MainForm mainform; </P>
<P>app.setMainWidget(&amp;mainform);</P>
<P>&nbsp;mainform.show(); </P>
<P>return app.exec(); </P>
<P>} </P>
<P>接下来就可以使用tmake了 </P>
<P>progen -o main.pro</P>
<P>&nbsp;tmake main.pro -o Makefile</P>
<P>&nbsp;make</P>
<P>&nbsp;./main 呵呵,可以了 </P><img src ="http://www.blogjava.net/felicity/aggbug/23190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/felicity/" target="_blank">all gone</a> 2005-12-09 19:18 <a href="http://www.blogjava.net/felicity/archive/2005/12/09/23190.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>