移植代碼到Linux下,運(yùn)行總是崩潰(在windows下正常)。
調(diào)試發(fā)現(xiàn)問題出在下列語(yǔ)句:
wxString szSiteHead = wxString::Format( wxT("<Location /%s>"), file.GetName() );
查看編譯記錄有下列警告信息
warning: cannot pass objects of non-POD type 'class wxString' through '...'; call will abort at runtime|
提示在運(yùn)行時(shí)會(huì)異常。
查找 POD type定義如下:非原生類型
POD stands for Plain Old Data - that is, a struct (or class) with no members except data members. Wikipedia goes into a bit more detail and defines a POD in C++ as "A Plain Old Data Structure in C++ is an aggregate class that contains only PODS as members, has no user-defined destructor, no user-defined copy assignment operator, and no nonstatic members of pointer-to-member type."
代碼更改后OK。
wxString szSiteHead = wxString::Format( wxT("<Location /%s>"), file.GetName().c_str() );