1

我想编写一个打印其位置的 C 程序。

例如,如果我将程序 exe 文件放入D:\myfolder\myc_prog,它应该打印相同的位置D:\myfolder\myc_prog,如果我将该 exe 文件放入该位置E:\mynewfold\,它应该打印更新的位置E:\mynewfold

实际上,我不知道该怎么做,这就是为什么我无法为这个问题提供太多细节。

4

2 回答 2

2

由于您使用的是 Windows,因此GetModuleFileName应该可以解决问题。只需传递参数NULLhModule如果您想处理长文件名(通常会这样做),请务必仔细阅读文档。您还必须去除可执行文件的名称以获取目录路径。一个快速而肮脏的方法是删除最后一个\.

于 2013-05-17T22:24:18.310 回答
1
#include <Windows.h>
#include <stdio.h>

int main(int argc, char *argv[]){
    char buff[256];
    if(GetCurrentDirectory(256, buff)){//get current directory
        printf("%s\n", buff);
    }
    return 0;
}
于 2013-05-18T09:24:00.020 回答