Я анализирую сбой в моем приложении и подозреваю, что мой текущий подход (подход 1 в приведенном ниже коде) может привести к сбою, но не уверен.Я вставил ниже мой код для справки.Сбой не воспроизводится внутри компании и не создает дампов.
#define SAMPLE_STRING L"Hello world"
class CFoo
{
std::map <CString, CString> m_map;
public:
void SetMyString(__in const CString& csParam)
{
CString csKey(L"Mykey");
m_map[csKey] = csParam;
}
};
int main()
{
//approach 1
CFoo obj;
obj.SetMyString(SAMPLE_STRING);
//approach 2
CFoo obj;
CString csMystr(SAMPLE_STRING);
obj.SetMyString(csMystr);
}
Ниже приведены мои вопросы:
- Можем ли мы передать макрос как ссылку на CString или создать CStringинициализировать с помощью макроса и затем передать ссылку на CString?
- В чем разница между двумя вышеупомянутыми подходами?
- Может ли сбой приложения при подходе 1?Если это возможно, может кто-нибудь объяснить, как?