1

我有一个使用自定义文件类型的应用程序,并且我已将这些文件类型与我的应用程序(Windows 文件系统)相关联。当我双击文件时,我的应用程序会打开,但我希望能够从文件中传递数据。

我曾希望文件路径会被发送到 main,但没有这样的运气。每当我通过单击文件“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] and 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 回答