2
我遇到一些代碼,其中一個LPCTSTR被assigend添加到_bstr_t。由於BSTR根據MSDN提供了長度信息,而且一個普通的TCHAR指針不能確定下面的代碼是否安全。我沒有發現有一個線索,有一個重載操作符,使得這可能安全,但是這似乎工作沒有任何明顯的錯誤,但它可能是未定義的行爲。爲_bstr_t com屬性分配一個LPCTSTR是否安全?
實施例:
// pComObject->Property is of type _bstr_t
pComObject->Property = (LPCTSTR) string;
我好奇'LPCTSTR'鑄...'string'的類型是什麼?如果string是'std :: string'或'std :: wstring'的實例,則應該使用'c_str()'方法。如果'string'是'CString'的一個實例,則有一個隱式的'LPCTSTR'轉換運算符。 – 2012-04-04 15:51:40
字符串是一個'CString',所以正確的部分是可以的。儘管如此,我錯過了看看賦值操作符。 – Alex 2012-04-04 15:54:53