// 连接Access数据库的代码 2020-8-23 21:45:07 _ConnectionPtr p_connection; HRESULT hr_ado_db; try { hr_ado_db = p_connection.CreateInstance("ADODO.Connection"); if (SUCCEEDED(hr_ado_db)) { p_connection->ConnectionTimeout = 3; hr_ado_db = p_connection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =D:\Develop\accessDB\canyin.accdb", "", "", adModeUnknown); } } catch (const _com_error ex) { using namespace std; auto tmp = basic_string<wchar_t>(L"连接数据库错误信息:").append((WCHAR*)ex.ErrorMessage()); ::MessageBox(NULL, tmp.c_str(), L"提示信息", NULL); return FALSE; }
https://blog.csdn.net/xukaiwen_2016/article/details/52078397 wchar_t和char,WCHAR和CHAR的区别和互相转化
https://blog.csdn.net/sky200543012/article/details/6306243 WCHAR,CHAR,TCHAR的区别
现在C++的字符分成两种类型wchar_t和char。 其中 WCHAR==wchar_t,CHAR==char。 TCHAR是一种条件编译的类型,根据条件可以代表wchar_t或char。 CHAR实施上就是unsigned char, WCHAR为宽字符, 而TCHAR根据是否支持unicode而不同。 在程序使用sizeof(TCAHR),当默认设置时,这个值是1; 当定义UNICODE宏时,这个值是2。 WCHAR,CHAR,TCHAR的关系实际上是这样的 #ifdef UNICODE typedef wchar_t TCHAR; #else typedef unsigned char TCHAR; #endif typedef unsigned char CHAR; typedef unsigned wchar_t WCHAR;