1

在win7下,运行时(模块)从来没有给我任何东西。我希望第一个参数始终是 exe 路径,但它始终为空。

4

3 回答 3

1

如果只是获取当前路径,则为std.file.getcwd()您提供当前目录。

于 2013-08-22T06:18:37.193 回答
1

我可以确认运行时在使用WinMain函数时返回空值(即使在调用之后Runtime.initialize)。

如果编译器找到一个函数,也许 Druntime 应该尝试调用 WinAPI 函数来填充rt_args/成员。通常,人们会使用GetCommandLineCommandLineToArgvW来提取参数。可能应该为此向bugzilla提交一个错误。rt_cArgsWinMain

至于当前进程的实际路径,有一个开放的拉取请求应该会进入下一个 2.064 版本。

于 2013-08-24T00:35:20.283 回答
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

编写一个提供运行进程路径的函数的跨平台实现并不是一项简单的任务......过去在 StackOverflow 上已在数百个(与 D 无关的)线程中进行了讨论。

于 2013-08-22T09:38:25.567 回答