D/Objective-C 64bit

Christian Schneider via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Nov 7 04:12:10 PST 2014


>> Also when I tried to declare / use extern strings like from
>> NSApplication.h:
>>
>> APPKIT_EXTERN NSString *NSApplicationDidHideNotification;
>>
>> I found no way to get this working. Is this a limitation of 
>> the current
>> 64 bit port?
>
> I think that should work. How did you declare it? It should be 
> declared like this:
>
> extern (C) extern NSString NSApplicationDidHideNotification;
>
> I tried with a standard D compiler and void* instead of 
> NSString and that worked.
>
> "extern (C)" tells the compiler to use C linkage, the second 
> "extern" tells the compiler this symbols is defined somewhere 
> else, i.e. in some library.

Jacob, thank you very much for your reply and explanations!

I get EXC_BAD_ACCESS (SIGSEGV) for both NSString and void * if I 
use the declaration you suggested.

In the case for notification string constants, when I log it in 
Objective-C, it just equals to 
"NSApplicationDidHideNotification", so these could be simply 
redeclared for such strings, but that's not very stylish and 
against the basic idea, i guess.



More information about the Digitalmars-d-announce mailing list