0

「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"

エラーを見つけるためにどこを見ればよいかわかりませんが、

4

1 に答える 1

1

マクロがあると思います

#define SERVER_PORT _T("SERVERPORT")

その場合_T("SERVERPORT")は const 配列です。
変更することはできません (_wcsupr引数をその場で変更します)。

マクロを変数に置き換えます。

TCHAR SERVER_PORT[] = _T("SERVERPORT");
于 2013-02-21T14:46:07.083 に答える