gpt4 book ai didi

windows - 通过双击关联文件打开 C++ 程序。我如何获得文件名?

转载 作者:可可西里 更新时间:2023-11-01 11:37:36 26 4
gpt4 key购买 nike

我有一个与 .bin 文件相关联的 C++ 程序,因此无论何时打开 .bin 文件,它都会用 myProgram.exe 打开。

如何获取打开我的程序的关联文件的文件名?

最佳答案

在纯 C++ 中,您可以使用 main 的参数:

#include <iostream>
int main( int argc, char* argv[] )
{
using namespace std;
cout << argc << " arguments:" << endl;
for( int i = 0; i < argc; ++i )
{
cout << "[" << argv[i] << "]" << endl;
}
}

但是有一个问题,即 C 和 C++ main 是为 *nix 而不是 Windows 设计的。神圣的 C++ 标准建议运行时应提供 UTF-8 编码的 main 参数,但是,传统的 Windows C++ 编译器不会发生这种情况。所以在 Windows 中,这种方法可能不适用于文件名,例如挪威语、希腊语或俄语字符。

在 Windows 中,对于打算供其他人使用的程序,您可以改用(Unicode 版本的)Windows API 函数 GetCommandLine ,以及它的解析器表亲 CommandLineToArgvW以便将命令行拆分为单独的参数。

或者,通过 Microsoft 的 C 和 C++ 语言实现,您可以使用非标准启动函数 wmain .但是,我不建议这样做。我认为尽可能地保持 C 和 C++ 的国际标准是一个好主意,并且肯定没有紧迫的理由使用 wmain,即使它对于小玩具来说很方便程序。

干杯,

关于windows - 通过双击关联文件打开 C++ 程序。我如何获得文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com