C编程: Drag&Drop a file over a program's icon

标签 c compiler-construction programming-languages drag-and-drop crash

我刚刚制作了一个小程序,它读取拖动到其图标上的文件的名称并将其写入输出文本文件

但是如果我编译这个程序,当我尝试将文件拖到它上面时它会崩溃。 如果我双击打开它就可以了;如果我用命令行和参数打开它就可以了;但如果我只是将一个文件放在我编译的程序上,它总是会崩溃,我不知道为什么

尝试像这样编译:

#include <stdio.h>

int main(int argc, char * argv[])
{
    FILE * File=fopen("file.txt", "w");
    fclose(File);
    return 0;
}

如果将一个简单文件拖放到该程序图标上,程序就会崩溃

有谁知道为什么吗?

最佳答案

当可执行文件运行时,您可能正在对当前工作目录及其权限做出假设。对无效的 FILE *(例如 NULL)调用 fclose 很可能会导致崩溃。您需要验证 fopen 是否成功,例如

#include <stdio.h>

int main(int argc, char * argv[])
{
    FILE * f = fopen("file.txt", "w");
    if (f != NULL)
    {
        //
        // write stuff to file here if you want...
        //
        fclose(f);
    }
    return 0;
}

关于C编程: Drag&Drop a file over a program's icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164467/

相关文章:

programming-languages - 什么是鸭子类型(duck typing)?

c# - 是否有适用于 Linux 的 C#?

c - 制作既是 C 标识符又是字符串的东西?

c - 与之前 fork 的子进程共享一个套接字

java - 在一个项目中将 C++ 与 Java 集成。有可能吗?怎么做?

java - Java 中的 ANTLR 基本示例

用于嵌入式编程的 C++ 编译器

c++ - 为什么只有 C++(和 D 语言)提供可变参数模板功能?可变模板有那么好吗?

programming-languages - 可以使用任何语言来创建任何程序吗?

c++ - 核心文件分析