exern (C) linkage problem
    bearophile 
    bearophileHUGS at lycos.com
       
    Mon Jul 19 15:01:25 PDT 2010
    
    
  
> typedef char* Cstring;
> extern(C) Cstring strcmp(Cstring s1, Cstring s2);
> ...
You can use just a struct too:
import std.string: toStringz;
struct Cstring {
    const(char)* ptr;
}
extern(C) Cstring strcmp(Cstring s1, Cstring s2);
Cstring toCString(T)(T[] s) {
    return Cstring(toStringz(s));
}
void main() {
    auto s1 = "abba";
    auto s2 = "red";
    // auto r = strcmp(toCString(s1), s2); // compile error
    auto r = strcmp(toCString(s1), toCString(s2)); // OK
}
Bye,
bearophile
    
    
More information about the Digitalmars-d-learn
mailing list