我有一個exe加載DLL。我寫了兩個。dllexported附加字符串已損壞
我是dllexporting函數foo返回一個std :: wstring。
它是所有說
的std :: wstring的廢話= L 「rgjwgfw」;
return blah.append(L"hey");
在exe文件中,我輸入foo時,字符串已損壞。只要我從我調用foo的函數返回,我就會得到失敗的斷言。有時我收到一條消息,稱Windows已經在foo.exe中觸發了一個斷點。這可能是由於堆的腐敗等原因造成的......這也可能是由於foo.exe具有焦點時用戶按f12。 etc ...
任何想法,爲什麼會發生這種情況?它不會發生,如果我從foo刪除追加線,並返回原始字符串,沒有問題。
謝謝
你確定這兩個dll是用相同的選項編譯的(發佈版或調試版)嗎? STL模板可能有不同的大小 – 2011-04-20 17:26:15