李国帅2013年编
对于编写的com控件,可能使用在浏览器或者被其他语言调用,传递的是bstr字符串,com中使用的话需要转换为char*进行操作。
#include <comutil.h> #pragma comment(lib, "comsupp.lib") #pragma comment(lib, "comsuppw.lib") STDMETHODIMP CDhPlayer::TakeSnapshot(BSTR FileName, LONG* pResult) { *pResult = 0; _bstr_t bstrVal = (_bstr_t)FileName; *pResult = m_pDevMng->SnapshotBitmap((TCHAR*)bstrVal); return S_OK; } #include <atlstr.h> #include <atlconv.h> using namespace ATL; #ifdef UNICODE USES_CONVERSION; CHAR* pchDVRIP = T2A(m_pDevMng->GetDvrIP().GetString()); CHAR* pchUserName = T2A(m_pDevMng->GetDvrUserName()); CHAR* pchPassword = T2A(m_pDevMng->GetDvrPwd()); #else CHAR* pchDVRIP = (LPTSTR)(LPCTSTR)m_pDevMng->GetDvrIP();; CHAR* pchUserName = (LPTSTR)(LPCTSTR)m_pDevMng->GetDvrUserName(); CHAR* pchPassword = (LPTSTR)(LPCTSTR)m_pDevMng->GetDvrPwd(); #endif // UNICODE