【问题标题】:File as argument for Win32 application文件作为 Win32 应用程序的参数
【发布时间】:2011-08-11 16:18:09
【问题描述】:

如何让 Win32 应用程序在启动时以这样的方式打开文件(例如使用快捷方式或通过命令行)?

program.exe "document.txt"

【问题讨论】:

  • 解析传递给WinMainlpCmdLine参数,提取文件名,打开文件。

标签: c winapi


【解决方案1】:

link 展示了如何检索命令行参数并将它们转换为字符串数组

即使它是用main 编写的,它也同样适用于WinMain 或任何其他函数

【讨论】:

  • 我有一段时间没忙这个了。谢谢您的帮助。现在我在LPWSTR 的数组中有参数。但是如何在消息框中使用这些值或将它们转换为char*
  • 您要将它们全部折叠成一个字符串,还是单独显示/转换每个字符串?
  • 我想使用fopen 中的文件名,但它是LPWSTRfopen 需要char*。我还想使用SetWindowText在标题栏中显示文件名。
  • 假设您的LPWSTR 文件名使用变量fileNameW 存储。字符串的长度(包括NULL)由size_t length = wcslen(fileNameW);找到。然后可以将char* 缓冲区声明为char *fileNameA = new char[length];。最后,可以使用wcstombs 函数填充缓冲区,如下所示:wcstombs(fileNameA, fileNameW, length);
【解决方案2】:

如果你有一个 Unicode 程序使用lpCmdLine,否则使用GetCommandLineW 并将结果传递给CommandLineToArgvW 以获取程序参数的字符串列表,那么它就像使用命令行一样工作程序。

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 2017-02-01
    • 1970-01-01
    • 2015-11-16
    • 2012-11-27
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2020-01-19
    相关资源
    最近更新 更多