我收到“CEDel.exe 中 0x03f7111c 处的第一次机会异常:0xC0000005:访问冲突写入位置 0x002e0364。” 运行我的代码时出错。我目前正在调试模式下运行,并且在插入我的计算机的实际 Win Mobile CE 6.5.3 设备上运行。堆栈的顶部(不是反汇编)指向一个 if 语句,我不确定是什么导致了错误。该项目是几年前在 MS eMbedded C++ 中创建的,我正在将其移植到 MS Visual Studio 2008。
代码是
CDeviceFuncCursor& curs = tempDeviceFunc.GetCursor();// added for debug checks
if (((wcscmp(_wcsupr(tempDeviceFunc.GetCursor().m_szSection), _wcsupr(INI_SERVERS_SECTION)) == 0) && //INI_SERVERS_SECTION == _T("Servers")
((wcscmp(_wcsupr(tempDeviceFunc.GetCursor().m_szVariable), _wcsupr(FTP_PRIMARY)) == 0) || //FTP_PRIMARY == _T("Primary")
* (wcscmp(_wcsupr(tempDeviceFunc.GetCursor().m_szVariable), _wcsupr(SERVER_PORT)) == 0)))) //SERVER_PORT == _T("SERVERPORT")
{
CString csValue = tempDeviceFunc.GetCursor().m_szValue;
csValue = EncryptData(csValue.GetBuffer(csValue.GetLength()));
WriteProfileString(tempDeviceFunc.GetCursor().m_szSection, tempDeviceFunc.GetCursor().m_szVariable, csValue.GetBuffer(csValue.GetLength()+1));
}
带有 * 的行是堆栈指向的行。
在断点处:curs.m_szSection = "APPLICATIONCONTROL", curs.m_szVariable = "AppLanguage", curs.m_szValue == "0"
我不确定在哪里可以找到错误,