假設我要的一組命令行選項轉發到C函數,聲明如下,與d主要服用ARGS轉換串[]到char **
extern (C) void init(int argc, char** argv);
void main(string[] args) {
init(args.length, map!(toStringz)(args));
}
的第一個參數是很容易,但我嘗試將toStringz
應用於args
陣列似乎不起作用。我得到cannot implicitly convert expression (map(args)) of type MapResult!(toStringz,string[]) to char**
。如何將string[]
轉換爲char**
(或甚至const(char)**
)。
在接下來的版本中,您就可以使用'Core.runtime.cArgs'並直接通過它'argc'和'argv'字段爲C函數。 –