我有一个使用自定义文件类型的应用程序,并且我已将这些文件类型与我的应用程序(Windows 文件系统)相关联。当我双击文件时,我的应用程序会打开,但我希望能够从文件中传递数据。
我曾希望文件路径会被发送到 main,但没有这样的运气。每当我通过单击文件“argc”打开应用程序时读取“0”。打开应用程序通常会将“argc”设为“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
.
文件调用的路径将存储在 "char* argv[]" 中作为 "argv[0]" 或 "argv[1]" (抱歉没有准确记住,我的 C++ 有点生疏)。"int argc" 简单地列出了 "char* argv[]" 中存在多少元素