<分区>
我有一个使用自定义文件类型的应用程序,并且我已将这些文件类型与我的应用程序(Windows 文件系统)相关联。当我双击我的应用程序打开的文件时,但我希望能够从文件中传递数据。
我曾希望文件路径会被发送到 main,但没有这样的运气。每当我通过单击文件“argc”打开应用程序时,都会显示“0”。打开应用程序通常会将“argc”设为“1”。
有没有办法传入用于打开应用程序的文件路径?
<分区>
我有一个使用自定义文件类型的应用程序,并且我已将这些文件类型与我的应用程序(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]
和 结尾argv[2]
。这在 XP 中尤其常见,我的文档
。
关于c++ - 如何为我的 C++ 应用程序提供单击以打开该应用程序的文件的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19098746/