在win7下运行时(模块)从不给我任何东西。我期望第一个参数始终是exe文件的路径,但它总是空的。如何使用运行时结构获取exe路径?
回答
当使用WinMain
函数时(即使在调用Runtime.initialize
后),我可以确认运行时返回空值。
如果编译器发现WinMain
函数,Druntime应尝试调用WinAPI函数来填充成员rt_args
/rt_cArgs
。通常可以使用GetCommandLine或CommandLineToArgvW来提取参数。应该为此提交一个bug到bugzilla。
至于当前进程的实际路径,有一个开放的pull request应该使其进入下一个2.064版本。
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的讨论中来。
我不是在Win 7下勉强这个代码,完全没有给我任何代码。我知道第一个参数是exe的路径,但问题是:从我这边来看并不是这样。我不明白为什么。 – BBasile
通常我在Linux上工作,并且args [0]给出了我期望的可执行文件名。我打开了另一台装有Windows 7旗舰版的电脑。我在它上面安装了dmd并用test.d文件名编译了你的代码。当我执行时,它会在屏幕上显示“测试”,这已经是test.exe的名称了,这是正确的。我认为你的安装有问题。 (Win 7,32位,DMD 2.063.2) – tcak
@BBasile:上面的例子是在Windows 7上进行的。更确切地说,VER给出了'Microsoft Windows [Version 6.1.7601]',“dmd -v”给出了'DMD32 D Compiler v2.063.2'。尝试一些其他版本的DMD ... – DejanLekic
- 1. 在构建时或运行时获取解决方案路径
- 2. 如何使用ruby中的参数从unc路径运行exe
- 3. 如何获取运行时Web应用程序路径?
- 4. 如何使用exe路径使用mciSendString(“播放路径”,0,0,0)?
- 5. 如何在运行时获取动态路径?
- 6. 如何获取设置输入文件路径运行时?
- 7. 如何使用子路径获取资源路径使用NSBundle
- 8. 获取py2exe上exe文件的路径
- 9. 为我的.exe获取路径
- 10. 如何从字符串路径中获取dirent结构?
- 11. 如何获取数组中元素的层次结构路径
- 12. 如何获得知道exe文件路径的物理路径?
- 13. 如何用PHP保存路径结构?
- 14. 在运行时获取应用程序的路径+ cocoa
- 15. 如何在C#中从路径运行.exe
- 16. 从终端或命令行运行时获取路径
- 17. 获取文件绝对路径时Golang运行时错误
- 18. 使用manifest.mf类路径的运行时类路径
- 19. 如何获取应用程序使用打印机运行的路径?
- 20. visual studio 2013在运行.exe时修改路径变量
- 21. 使用路径获取Xelement.elements()
- 22. 获取组装路径,但不是装配正在运行的临时路径
- 23. 如何从exe的完整路径获取Innosetup脚本中exe的名称?
- 24. 如何获取正在执行的冻结脚本的路径
- 25. 如何获取R.java路径?
- 26. 如何使用Javascript获取当前正在运行的脚本的路径?
- 27. CloudBees运行时类路径
- 28. 如何在Vim之外获得Vim运行时间路径
- 29. 如何在使用Ninject绑定时获取dll的路径?
- 30. 如何从运行时类路径中读取目录?
代码?更多上下文?链接到文档/库? – BCS
runtime.argc以胜利形式启动后的core.runtime。就像在示例winsamp中一样。 – BBasile