2012-02-08 18 views
1

現在、既存のVB.NETプロジェクトを実行しようとしています。 nullポインタ例外がWndProcメッセージにスローされますが、スタックトレースは実際に何も私に与えません。私はスタートアップフォームのデザイナーコードにブレークポイントを置くことができますが、それを実行すると、WndProc関数を介してNULLポインター例外がトリガーされます。上のメソッドはWindowsメソッドのようです。私が持っている唯一の手がかりは、Msg = 24とWParam = 1のメッセージパラメータです。私はHWnd = 5178884が役に立たないと思います。WndProcメッセージとは何か

誰かが考えている場合に備えてスタックトレースを貼り付けています。 :ソースコードが専有であるため、MyNamespaceとMyBaseFormとMyFormAをマスクしました。これは、それは本当に助けていないことを...の.NET Framework 3.5

MyNamespace.Forms.MyBaseForm.WndProc(Message& m)\r\n 
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\r\n 
System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n 
System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)\r\n 
System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)\r\n 
System.Windows.Forms.Control.SetVisibleCore(Boolean value)\r\n 
System.Windows.Forms.Form.SetVisibleCore(Boolean value)\r\n 
System.Windows.Forms.Control.set_Visible(Boolean value)\r\n 
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)\r\n 
System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)\r\n 
System.Windows.Forms.Application.Run(ApplicationContext context)\r\n 
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()\r\n 
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()\r\n 
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)\r\n 
MyFormA.My.MyApplication.Main(String[] Args) 
17d14f5c-a337-4978-8281-53493378c1071.vb:Line 81\r\n 
System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)\r\n 
System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)\r\n 
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()\r\n 
System.Threading.ThreadHelper.ThreadStart_Context(Object state)\r\n 
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n 
System.Threading.ThreadHelper.ThreadStart()" 

答えて

2

WM_SHOWWINDOW = 24

上のVisual Studio 2008で実行されます。 実行するコードの最後のビットがの行81のように見えます。

+0

ありがとうございました。私は、81行目がMyFormA.My.MyApplication.Mainという名前のシステムapiから来ていると推測しています。おそらくビジュアルスタジオの一部です。その名前はguidです。それは原因ではないかもしれません。 – Nap

+0

ここに追加するのはWM_SHOWWINDOWへの参照です。 http://winapi.freetechsecrets.com/win32/WIN32WMSHOWWINDOW.htm – Nap

0

スタックトレースが何も伝えていないのにエラーがどこから来たのかを知る方法について別の答えを出したいだけです(実際の問​​題はなぜWndProc 24でしたか)。ただ他の人にも同じ問題があった場合に備えて。

Visual Studioで[デバッグ]> [例外]メニューから[処理できない例外]を使用しました。詳細はlinkを参照してください。

最初の質問に答えてC.Barlowにポイントを維持する。

関連する問題