1

カスタム ファイル タイプを使用するアプリケーションがあり、これらのファイル タイプをアプリケーション (Windows ファイル システム) に関連付けました。ファイルをダブルクリックするとアプリケーションが開きますが、ファイルからデータを渡すことができるようにしたいと考えています。

ファイルパスがメインに送信されることを望んでいましたが、そのような運はありませんでした。ファイルをクリックしてアプリケーションを開くたびに、「argc」が「0」を読み取ります。アプリケーションを開くと、通常は「argc」が「1」になります。

アプリケーションを開くために使用されるファイル パスを渡す方法はありますか?

4

2 に答える 2

1

Windows は、プログラムの開始方法を先験的に知りません。おそらくそれd:\path\to\exe\foo.exe --no-spash --input-file "C:\what you\clicked.foofile"です。そのため、Windows に通知するためにレジストリ エントリを挿入します。

もちろん、前もってわからない文字列の一部があり、それはもちろん"C:\what you\clicked.foofile". レジストリ エントリでは"%1"、Windows によって実際のパスが置き換えられます。" "パスにはスペースを含めることができるため、 をargv[1] 忘れ ないでくださいargv[2]。これは、XP では特に一般的でしたMy Documents

于 2013-09-30T19:35:02.237 に答える
0

ファイル呼び出しのパスは、"char* argv[]" に "argv[0]" または "argv[1]" として格納されます (正確に覚えていなくて申し訳ありません。私の C++ は少し錆びています)。「int argc」は、「char* argv[]」に存在する要素の数を単にリストします

于 2013-09-30T16:16:21.410 に答える