问题描述
在最近的一词编程中发现了一写.net2005(VC8)和MySQL的兼容性问题:一。CString和CHAR数组的转换丢失如果函数声明中,参数的形式为char*形如funC(char*chBuf);若采用如下的强制性转换则会出现数据丢失:CStringstrBuf;func((LPTSTR)(LPCTSTR)strBuf);func函数原型为:mysql_real_connect();若使用强制性转换,始终连接不上。二。在头文件中对于WinSock的支持。在自己的工程中最好加入<winsock2.h>等相关的头文件(API),才能成功的编译。应该是mySQL移植性的一个小BUG.
解决方案
解决方案二:
.net2005默认是Unicode编码,请确保CString是ANSI编码,否则需要使用WideCharToMultiByte函数转换,另外,(LPCTSTR)strBuf这种写法不规范,请使用strBuf.GetBuffer()。不加<winsock2.h>是不能创建套接字的,使用mysql数据库就要创建网络连接,要创建连接自然需要套接字,所以必须加,或者在创建工程的时候选择对socket的支持。
时间: 2025-01-30 04:50:57