本文目录一览:
怎么用visual studio打开mysql源码
1.下载
mysql++-3.1.0.tar.gz,解压,如:c:\mysql++-3.1.0
2、mysql++-3.1.0
目录下进入相应
Visual
Studio
版本(VS2003,VS2005,VS2008。VS2010可以使用VS2008),打开解决方案,这里以VS2008为例。
3、把mysql++设为启动项目,生成时可能会报错:错误为“无法打开libmysql.lib”
4、在mysql安装目录下找到libmysql.lib,复制到
C:\Program
Files\Microsoft
Visual
Studio
9.0\VC\lib
(这里以VS2008为例),再次生成成功。
5、设置
resetdb
为启动项,如果生成成功,则说明OK。
6、把
c:\mysql++-3.1.0\vc2008\Debug
目录下的
mysqlpp_d.dll、mysqlpp_d.lib、libmysql.dll、libmysql.lib
四个文件和
c:\mysql++-3.1.0\lib目录
拷贝到放置到新项目的根目录下。
7、右键新项目的属性——配置属性——链接器——输入——附加依赖项——添加
mysqlpp_d.lib
libmysql.lib
8、测试代码:
#include
iostream
#include
string
#include
cstdlib
#include
"mysql++.h"
using
namespace
std;
int
main()
{
mysqlpp::Connection
con(false);
con.set_option(new
mysqlpp::SetCharsetNameOption("gbk"));
cout
"请输入数据库(root用户)连接密码:";
string
pwd;
getline(cin,
pwd);
if
(!con.connect("tot",
"localhost",
"root",
pwd.c_str()))
{
cout
"无法连接,请检查密码是否正确!"
endl;
return
-1;
}
vc中文显示乱码
CString类支持编码转换,使用CString完全没有必要使用MultiByteToWideChar,因为这里面已经内置的转换了。
如果你的工程是UNICODE模式,那么str=charpoint的时候,转换就已经发生。如果不是,那么只要资源中指定中文字符集,那么显示多字节的中文也是没有问题的。
CString类的源码如下:
#ifdef _UNICODE
const CString CString::operator=(LPCSTR lpsz)
{
int nSrcLen = lpsz != NULL ? lstrlenA(lpsz) : 0;
AllocBeforeWrite(nSrcLen);
_mbstowcsz(m_pchData, lpsz, nSrcLen+1);//这个就是MultiByteToWideChar
ReleaseBuffer();
return *this;
}
#else //!_UNICODE
const CString CString::operator=(LPCWSTR lpsz)
{
int nSrcLen = lpsz != NULL ? wcslen(lpsz) : 0;
AllocBeforeWrite(nSrcLen*2);
_wcstombsz(m_pchData, lpsz, (nSrcLen*2)+1);
ReleaseBuffer();
return *this;
}
#endif //!_UNICODE
建议你,还是检查一下MYSQL里面保存的字符串,是如何定义的字段属性,从这里查起。
MySQL安装时applying security settings出错怎么办
MySQL安装时applying security settings出错,是设置错误造成的,解决方法如下:
1、首先下载nysql的yum仓库源,不是源码包或者其它的rpm包。
2、然后找和自己操作系统匹配的版本进行下载。
3、然后使用rpm -ivh mysql57-community-release-el6-11.noarch.rpm 命令进行安装,完成之后检查是否会生成repo文件。
4、使用yum install mysql-community-server进行安装mysql。
5、最后启动mysql服务[root@localhost ~]# service mysqld startStarting mysqld:。
如何查看mySQL的源代码
给你个过来人的建议。两个方式入手。
1、利用他。尽可能从大模块开始,用你的代码,去调用他。这是从功能特性角度,去理解各个模块的作用。这非常容易加深你对应用它的理解。
2、在代码中插入LOG,检测代码运行流程。
如果你只是静态的看代码,这个不现实的。
如果你想看一部分代码。首先你要想办法让这套代码RUN起来,如果你使用任何方式都无法让这段代码运行,我只能说,这段代码没有存在价值。为什么在里面,当然更大的可能是,你没找到开启它的方法。
动态分析法,是门学问。包括对运行态才出现BUG的系统进行DEBUG,当然不是GDB或者VC的F5模式。不过貌似学校没有这类教学。很工程的东西。我也只是经验所得。没有系统的理论化。
例如一套系统,你在不改代码的情况下,要能找到问题。甚至不能加LOG代码,只能通过反馈判断。不是不可能的。甚至有时必须这么做。