Hey、 私のexeファイルと同じフォルダにあるDLLへのパスを取得しようとしています。方法は実行中の実行可能ファイルへのパスを取得するためにQueryFullProcessImageName()
またはGetModuleFileName()
のいずれかを使用し、代わりに必要なライブラリへのパスにするために文字列操作を使用するように思われます。SAFELY Windowsで実行可能な実行可能ファイルへのパス
残念ながら、これらの2つの機能のどちらも、必要なサイズバッファを事前に見つける方法を提供していません。私はnSizeパラメータのためにゼロを渡そうとしましたが、これは望みの効果がありません。
これを実行するベストプラクティス方法は何ですか?
可能重複http://stackoverflow.com/questions/805814/how-can-i-calculate-the -complete-buffer-size-for-getmodulefilename) –
私はそれを見ましたが、 'GetModuleFileName'以外のAPIを使用しています(' QueryFullProcessName'と 'GetProcessImageFileName'も試しました) –
これらのAPIはすべてモジュールファイル名)は最終的に 'NtQueryInformationProcess'や' NtQuerySystemInformation'( 'SystemProcessIdInformation')を呼び出す必要があります。 Win32 APIが十分でない場合は、直接 'NtQueryInformationProcess'を呼び出してください。しかし、カーネルからユーザへのAPIがあなたのためにバッファを割り当てる方法はありません。 – wj32