在win7下,运行时(模块)从不给我任何东西。我希望第一个参数始终是exe路径,但它总是空的。
答案 0 :(得分:1)
如果只是获取当前路径,std.file.getcwd()
会为您提供当前目录。
答案 1 :(得分:1)
我可以确认运行时在使用WinMain
函数时返回空值(即使在调用Runtime.initialize
之后)。
如果编译器找到rt_args
函数,也许Druntime应该尝试调用WinAPI函数来填充rt_cArgs
/ WinMain
成员。通常,可以使用GetCommandLine或CommandLineToArgvW来提取参数。可能应该向bugzilla提交一个错误。
至于当前流程的实际路径,有一个开放的pull request应该会进入下一个2.064版本。
答案 2 :(得分:0)
C:\work\so> dmd bbasile01.d
C:\work\so> bbasile01.exe
C:\work\so\bbasile01.exe
C:\work\so> type bbasile01.d
import std.stdio;
int main(string[] args) {
writeln(args[0]);
return 0;
} // main() function
编写一个提供运行进程路径的函数的跨平台实现并不是一项简单的任务......过去在数百个(非D相关)线程中的StackOverflow中讨论过它。