c++ - 如何让 C++ 程序响应文件打开而执行?

标签 c++ file winapi

我编写了一个 c++ 程序,可以将其内部状态以自定义类型的文件形式保存到磁盘。我怎样才能让 Windows 在双击这种类型的文件时运行我的程序?是否有一种方法可以将参数传递给 main() 以便程序知道选择了哪个文件?

最佳答案

如果您使用 Windows 资源管理器上下文菜单中的“运行方式...”,您可以选择您的应用程序二进制文件。

Windows 将提供绝对文件路径作为应用程序的第一个参数。

int main(int argc, char **argv)
{
  if (argc < 2)
    std::cout << "No argument" << std::endl;
  else
    std::cout << "Filename is " << argv[1] << std::endl;
}

为什么有 2 个参数?因为参数总是从 argv[1] 开始。 argv[0] 通常包含应用程序二进制文件的路径。

如果你调用“d:\MyApp.exe c:\MyImage.bmp”那么

argc == 2
argv[0] == "d:\MyApp.exe"
argv[1] == "c:\MyImage.bmp"

关于c++ - 如何让 C++ 程序响应文件打开而执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49936661/

相关文章:

c++ - 由于C++17支持数组的shared_ptr,这是否意味着ctor和reset中不再需要T[]的显式删除器?

c++ - 在没有 double 类型的 C 编译器上解析 double IEEE 浮点

python - 如何检查文件夹中的文件是否与 .csv 文件中指定的文件名一致?

c++ - 在另一个进程上下文下运行命令

c++ - 我需要在 VariantChangeType 之后调用 VariantClear

c++ - 接受字符串的 void 函数

c++ - 混淆包含头文件

c# - 无法写入文件名为 "aux"的任何路径

java - 如何为给定路径创建文件(包括文件夹)?

c++ - Windows DLL实际上是如何共享的?