我的应用程序在源代码的以下行崩溃:
CString path;
path = CACHE_DIR _T("Local\\Alarm\\current.tmp");
位置:
#define CACHE_DIR _T("C:\\<somewhere>\\System Cache\\")
调用堆栈提到以下代码行:
mfc140u.dll!ATL::CSimpleStringT<wchar_t,1>::operator=(const wchar_t * pszSrc) Line 317
我尝试进行一些分析,尝试使用立即窗口,但这无法识别_T()
运算符,也无法识别其同义词__T()
或L ##
。
所以现在看来,我有两个可能的原因:
CString
对象一个接一个地放置,是否正确地连接了两个CString
对象?)连接的结果很好,但是我不能将其放在结果变量中,该变量是由以下原因引起的:
2.1。处理 paymentIDArray.forEach(item => {
let p = rp({
uri: API + item.transactionID,
headers: {
"Content-Type": "application/json",
"Authorization": "Basic " + authCode
},
simple: false,
resolveWithFullResponse: false,
transform2xxOnly: false
}).promise();
promises.push(p);
});
await Promise
.all(promises)
.each(async (inspection) => {
if (inspection.isFulfilled()) {
// I want item.transactionID of each promise here
let result = JSON.parse(inspection.value());
} else {
logger.error(inspection);
logger.error("A promise in the array was rejected with", inspection.reason());
}
});
变量的错误方法。
2.2。内存问题,与这行特定的源代码无关(但是为什么我的应用程序然后继续在该行上完全崩溃?)。
为您提供信息,我的应用程序是多线程的。
有人可以告诉我我的应用程序出了什么问题吗?
在第一个评论后编辑:
来源似乎是正确的,这可能表明堆已损坏,但是我不知道如何调查堆。有人对此有任何线索吗?