1

実は、質問のタイトルがわからないので、Google で検索できませんでした。まず、この問題に何を言うべきかを知る必要があります。

さて、Visual Studio C++ 2010 で 3D オブジェクトを処理できるアプリケーションを開発したので、モデルのインポートに役立つ Import Model という機能があります。

私が望むのは、ユーザーがオブジェクトを右クリックして[アプリケーション名]で開くを押すか、それをダブルクリックするだけで、アプリケーションはそのファイルのパスを取得してインポート機能を呼び出す必要があるということです。MS Word の *.doc ファイルと同じように、ダブルクリックして開きます。

特定のファイル拡張子を開くためのデフォルトのプログラムとして自分のソフトウェアを作成するのと同じことを望んでいます。ユーザーがモデルをダブルクリックすると、アプリケーションで開く必要があります。

実は、引数パーサーについて何か読んだことがありますが、それについてはあまり知りません。それは私が探す必要があるものですか?

ありがとう。

更新 1:

Benjamin Lindley などで動作していますが、アプリケーションを起動する前に次のエラーが表示されます。引数は FLTK ウィンドウのみを通過します。このウィンドウがどこから来たのかわかりませんか?これらの画像オプションについても..次の画像を参照してください...

ここに画像の説明を入力

4

2 に答える 2

3

たとえば、ファイル内でファイルの関連付けが必要です.bat

@ASSOC .3D=3DObject.File
@FTYPE 3DObject.File="C:\MyProjects\Release\myprog.exe" "%%1" %%*

これは registry hiveHKEY_CLASSES_ROOTを使用し、それへの書き込みアクセスが必要になる場合があるため、「管理者として実行」します。

編集: プログラマーとして、レジストリ API ( 、 など) を使用しRegCreateKeyExRegSetValueEx関連付けをHKEY_CLASSES_ROOT自分に追加できますが、おそらく一度しか必要とされないため、おそらく努力する価値はありません。

于 2012-12-31T12:21:03.340 に答える
2

コメントと回答に記載されている「ファイルの関連付け」は、(私の意見では) トピックから外れており、おそらくSuper Userに属しています。しかし、プログラマーとして何をしなければならないのでしょうか? 誰かがあなたのプログラムに関連付けられているファイルをダブルクリックすると、そのファイル名が main 関数の引数として渡され、好きなように処理できます。

int main(int argc, char** argv)
{
    // the name file that was used to open your program is stored in argv[1]
    if (argc == 2)
        DoSomethingWithFile(argv[1])
}
于 2012-12-31T12:25:59.227 に答える