2017-03-14 18 views
0

私は作業ネットワークにPOCOライブラリを使用しています。 私はPOCO/JSONのJSONデータを使用します。私のコード:0x00007FF93E507A7A(ntdll.dll)でスローされた例外0xFFFFFFFFFFFFFFFFのアクセス違反

0xc0000005で:アクセス違反読み取り場所0xFFFFFFFFFFFFFFFF

User user(context.marshal_as<std::string>(tbUserName->Text), 
     context.marshal_as<std::string>(tbFullName->Text), 
     context.marshal_as<std::string>(tbDisplayName->Text), 
     context.marshal_as<std::string>(tbEmail->Text), 
     context.marshal_as<std::string>(tbPhoneNumber->Text), 
     context.marshal_as<std::string>(tbNamSinh->Text), 
     context.marshal_as<std::string>(tbPassword->Text), 
     context.marshal_as<std::string>(tbConfirm->Text) 
    ); 
    string jsonString = user.serialize(); 

私はClient_Winform.exeで0x00007FF93E507A7Antdll.dll)でスローされたエラーの例外があります。

この例外のハンドラがある場合は、プログラムを安全に続行することができます。

+0

ここでは、tbUserNameなどが宣言され、初期化されています。あなたが初期化されていないポインタの参照を外しているようです。 –

+0

Tは文字列を再初期化しようとしましたが、それでもまだ –

答えて

0

INVALID_HANDLEとして返されたハンドルを使用しています(INVALID_HANDLEは-1または0xFFFFFFFFFFFFFFFF)。それを使用しようとすると、アドレスとして使用され、そのアドレスにアクセスする権限がありません(エラー5はアクセス違反です)。

+0

できませんでした。まだ理解していない –

+0

エラーコード行は次のとおりです。string jsonString = user.serialize(); コード行を削除すると、プログラムは正常に実行されます。 コンソールにフルコードを入れても、通常のようにまだ実行中です winformが失敗します –

0

Visual Studioのコード解析を使用して、バグのあるコード内の正確な場所を追跡します。 https://msdn.microsoft.com/en-us/library/ms182028.aspx これらの種類のエラーメッセージの問題は、理由(ハンドル不良)を理解するのではなく、場所を見つけることです。コードはエラーなしでコンパイルをパスし、多くの場合、複数のマシンで円滑に実行され、そのうちの1つでのみクラッシュするので、クラッシュの場所に集中する必要があります。

関連する問題