2010-01-06 6 views
1

vC++에서 포트 포켓 (예 : tcp 스니퍼)을 캡처하는 DLL을 작성 중입니다. 이 응용 프로그램은 스레드를 사용하여 연속적으로 포켓을 검색하고 c# 응용 프로그램으로 데이터를 보내는 이벤트를가집니다.RichTextbox에서 NULL 참조 예외

c# appliaction은 해당 포켓 데이터를 수신하고 해당 데이터를 10 초마다 .txt 파일에 저장 한 다음 텍스트 상자를 지 웁니다.

실행 중이지만 가끔 nullreference 예외가 발생합니다.

오류 :

at System.Windows.Forms.RichTextBox.EditStreamProc(IntPtr dwCookie, IntPtr buf, Int32 cb, Int32& transferred) 
    at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam) 
    at System.Windows.Forms.NativeWindow.DefWndProc(Message& m) 
    at System.Windows.Forms.Control.DefWndProc(Message& m) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.TextBoxBase.WndProc(Message& m) 
    at System.Windows.Forms.RichTextBox.WndProc(Message& m) 
    at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
+0

Visual Studio에서 C# 응용 프로그램을 실행하고있을 때 런타임에 C#에서 오류가 발생했습니다 ... 또는 ...? C# 응용 프로그램은 패킷 데이터를 "수신"합니까? RichTextBox에 "텍스트 만"을 쓰고 있다고 가정하거나 RTF 형식의 텍스트를 작성하고 있습니까? RichTextBox의 내용을 저장하기 위해 호출하기 전이나 후에 발생하는 오류입니까? RichTextBox에 삽입하기 전에 어떤 식 으로든 "유효성 검사"를하고 있습니까? , – BillW

+0

ya..its 런타임에 only.am 발생했습니다 vC++ 응용 프로그램에서 vs 2003 사용하여이 이벤트에있는 경우에만 C# 데이터를 통해 이벤트가 있습니다. C에서 # 또한 수신 데이터에 대한 이벤트를 사용합니다. 어떤 유효성 검사를 사용하지 마십시오. 직접 데이터를 richtextbox에 넣어 txt 파일의 유니 코드 형식으로 파일을 작성하십시오. void main()의 exception.throw 오류를 통해서만 언젠가 (15 분 이상) 작동합니다. 친절하게 제안하기 – maxy

답변

0
이로 업데이트 루틴을 변경

:

debugText.SuspendLayout(); 
debugText.Focus(); 
debugText.SelectionStart = 0; 
debugText.SelectionLength = 0; 
debugText.SelectedText += message; 
debugText.SelectedText += Environment.NewLine; 
debugText.ResumeLayout(); 

때마다이 충돌을 해결할 것입니다 초점을 얻기.