0
根據MSDN更換T2OLE,在循環中使用T2OLE可能導致堆棧溢出,我的應用程序使用T2OLE很多地方在內部循環的代碼字符串轉換。我發現,使用ATL 7.0字符串轉換類和宏有很多的好處,它解決了堆棧溢出的問題,以及,與ATL 7.0字符串轉換類和宏
我使用ATL 7.0如下,
_bstr_T example("Hello world");
for(i=o; i<10000; i++)
{
Callsomemethod(i,T2OLE(example)); //This is where I need to replace T2OLE
}
void Callsomemethod(int k, cstring y)
{
....
}
我發現試過CT2OLE在ATL 7.0相當於T2OLE但是當我更換T2OLE與CT2OLE我得到這個問題
Error: No suitable user defined conversion from "ATL:CA2W" to Cstring exists
以同樣的方式我如果它確實CString轉化成_bstr_t的其他地方,當我更換那邊我得到這個
Error: No suitable user defined conversion from "ATL:CA2W" to _bstr_t exists
任何人都可以幫我解決這個問題嗎?