> > DLLを16進ダンプして検索したところ、PathGetArgvはかすりもしませんでした。
>
> 僕の環境でダンプすると"PathGetArgv"はありませんでしたが、
> "PathGetArgsA"という関数が見つかりました。
まさか、Argの複数形とは・・・orz
> 関数の宣言は、
>
コード:
Declare Function PathGetArgs Lib "shlwapi" Alias "PathGetArgsA" (ByVal p As BytePtr) As Long
> と、こんな感じでしょうか?
> 戻り値は、正常時は引数部分のアドレス。
> それ以外はNull文字のアドレスらしいです。
じゃあ、正確には
コード:
Declare Function PathGetArgs Lib "shlwapi.dll" Alias "PathGetArgsA" (ByVal pszPath As BytePtr) As BytePtr
と、こうなるわけですね。(戻り値の型が変わっただけ)
失敗時の戻り値が特徴的ですね。引数がない場合は終端のNull文字へのポインタが返り、関数が失敗すればNULLが返るそうです。なんともややこしい。
それから、MSDNライブラリ(日本)には掲載されていませんでしたが、MSDN Library(英語)のほうにはちゃんとありました。
(旧)C++のサンプル付きです。(coutとか使われているあたりがC++。ヘッダのインクルードに拡張子 .h が付いているあたりが旧式。)
ご参考まで↓
http://msdn.microsoft.com/library/defau ... etargs.asp