我有一个加载 dll 的 exe。我都写了。
我正在导出一个返回 std::wstring 的函数 foo。
它所做的只是说
std::wstring blah = L"rgjwgfw";
return blah.append(L"hey");
在我导入 foo 的 exe 中,字符串已损坏。一旦我从调用 foo 的函数返回,我就会得到失败的断言。有时我会收到一条消息,说 Windows 在 foo.exe 中触发了一个断点。这可能是由于堆损坏等......这也可能是由于用户在 foo.exe 具有焦点时按 f12。ETC....
知道为什么会这样吗?如果我从 foo 中删除附加行并且 jsut 返回原始字符串,则不会发生这种情况,没有问题。
谢谢