我正在尝试弄清楚如何从 D 字符串(不可变(char)[])获取普通的可变 C 字符串(char*),以便将字符数据传递给遗留的 C 代码。 toStringz 不起作用,因为我收到一条错误,说我“无法将 immutable(char)* 类型的表达式 (toStringz(this.fileName())) 隐式转换为 char*”。我是否需要重新创建一个新的可变字符数组并将字符复制过来?
如果您可以更改旧 C 代码的 D 接口的标头,and如果你确定遗留的 C 代码不会修改字符串,你可以让它接受const(char)*
, e.g.
char* strncpy(char* dest, const(char)* src, size_t count);
// ^^^^^^^^^^^^
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)