2012-04-04 25 views
2

我遇到一些代碼,其中一個LPCTSTR被assigend添加到_bstr_t。由於BSTR根據MSDN提供了長度信息,而且一個普通的TCHAR指針不能確定下面的代碼是否安全。我沒有發現有一個線索,有一個重載操作符,使得這可能安全,但是這似乎工作沒有任何明顯的錯誤,但它可能是未定義的行爲。爲_bstr_t com屬性分配一個LPCTSTR是否安全?

實施例:

// pComObject->Property is of type _bstr_t 
pComObject->Property = (LPCTSTR) string; 
+0

我好奇'LPCTSTR'鑄...'string'的類型是什麼?如果string是'std :: string'或'std :: wstring'的實例,則應該使用'c_str()'方法。如果'string'是'CString'的一個實例,則有一個隱式的'LPCTSTR'轉換運算符。 – 2012-04-04 15:51:40

+0

字符串是一個'CString',所以正確的部分是可以的。儘管如此,我錯過了看看賦值操作符。 – Alex 2012-04-04 15:54:53

回答

2

是,_bstr_t具有operator=它接受一個NULL結尾的字符串(既寬又多字節),所以這是安全的

相關問題