Hi,

I've been writing a utility function for getting a path within the bundle from the filename. For that, I used the function CFBundleCopyResourceURL, which needs some CFStringRefs. I saw somewhere on the net an example like this:

CFSTR("somefile")

and it worked fine. However, when I put it inside a function which takes const char * parameters, it didn't:

void SomeFunction(const char *filename)
{
...
CFBundleCopyResourceURL(mainBundle, CFSTR(filename), ...);

}

I eventually solved the problem using CFStringCreateFromCString, but there's one thing I don't understand. I thought a string literal should be treated by the compiler just as const char*, but obviously it isn't. Further, I've found in the CoreFoundation headers the definition of CFSTR which uses a syntax I've never seen before:

#ifdef __CONSTANT_CFSTRINGS__
#define CFSTR(cStr) ((CFStringRef) __builtin___CFStringMakeConstantString ("" cStr ""))
#else
#define CFSTR(cStr)  __CFStringMakeConstantString("" cStr "")
#endif


Can anyone explain what do the double-double quotes mean? Is it something Apple specific? I've never seen it before in a C program...

Thanks,
Ivan
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to