bugfix> c# > 投稿

この質問は、私が完全には理解していない少し古いフレームワークに関係しているのではないかと考えています(そのため質問です)。

とにかく、私は使用しようとしていますすべてを検索 私が作っている小さなアプリケーションに検索機能を実装するためのSDK。私は彼らが提供して実行した古いデモファイルをどうにか取得し、特定のものを使用して検索したもののファイル名を返すことができましたEverything_GetResultFileName 関数。この関数のドキュメントへのリンクを提供します(このドキュメントには、提示されたサンプルファイルも含まれています)ここに。

プログラムの問題は、この特定の関数を呼び出そうとすると、プログラムが失敗し、特定のエラーコード 0xc0000374 で終了することです。(調べてみると、ある種の破損したヒープ例外であることがわかりました)。キッカーは、提供されたサンプルファイルでは、まったく同じ方法で関数を呼び出しますが、今回はこの特定の状態で関数が終了しません。実際、意図したとおりに機能します。

この概念に何人の人が慣れているかはわかりませんが、できる限り多くの情報を提供して、応答しようとしている人にこれを簡単にしようとします。

  • メソッドのソースとしてEverything64.dllファイルを使用していました。 32ビット版のEverything32.dllは試していません。
  • このメソッドは、WPFアプリケーション(私の場合)で使用すると失敗しましたが、WinFormsアプリケーション(提供されたデモ)では機能しました。

また、提供するデバッグログもあります。

** SOME OF THESE NAMES HAVE BEEN MODIFIED BUT IT SHOULDN'T DETRACT FROM THE LOG **
'Winkwonk.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\Winky\Documents\Visual Studio 2017\Projects\Winkwonk\WW\WWSoln\WW\bin\x64\Debug\Winkwonk.exe'. Symbols loaded.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger\x64\Runtime\Microsoft.VisualStudio.Debugger.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Step into: Stepping over non-user code 'Winkwonk.App..ctor'
Step into: Stepping over non-user code 'Winkwonk.App.InitializeComponent'
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.Aero2\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.Aero2.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\Users\Winky\Documents\Visual Studio 2017\Projects\Winkwonk\WW\WWSoln\WW\bin\x64\Debug\WpfAnimatedGif.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\Users\Winky\AppData\Local\Temp\VisualStudio.XamlDiagnostics.16884\Microsoft.VisualStudio.DesignTools.WpfTap.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Internals\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Internals.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Winkwonk.exe' (CLR v4.0.30319: Winkwonk.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\UIAutomationProvider\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationProvider.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Wink! // This is the debug message printed just before the method was called
The program '[16884] Winkwonk.exe' has exited with code -1073740940 (0xc0000374).

答えは明らかかもしれませんが、私はそれを見るにはあまりにも忘れています。どんな助けも大歓迎です。 C#で使用するより良い検索APIに関する提案がある場合は、それらに関するポインタも役立ちます。ご質問がある場合は、上記のドキュメントを参照してください。

別のメモ: 些細なことですが、try/catchステートメントではエラーを含めるには不十分でした。

回答 1 件
  • 私は問題を理解し、答えました私自身の質問 いつかこの問題を理解するのに他の誰かを助けるかもしれない残骸を残すだけです。問題は、.NET 4.7.1およびEverything64.dllのメソッドとの互換性の問題があったことです(互換性の問題ではなかったため、.NET 3.0以降で保護されたメモリを読み書きしようとすると.NETがエラーをスローします)そう)。フレームワークを.NET 2.0に戻しました(これは少し極端かもしれませんが、デモがプログラムされたものであり、安全かもしれません)。プログラムは意図したとおりに動作するようになりました。

    少年、答えだった 明らかです。私はそれを何と呼びましたか?

あなたの答え