I'm not sure which compiler you're using that gives you this error ... the Apple LLVM Compiler (4.2 or 5.0) accepts the code you've shown, with no problems.
But, I think, you should just be able to fix that compile error by casting the return value of dlsym()
to a (int (*)(CFStringRef, Boolean))
:
int (*SBSLaunchApplicationWithIdentifier)(CFStringRef identifier, Boolean suspended) =
(int (*)(CFStringRef, Boolean))dlsym(sbServices, "SBSLaunchApplicationWithIdentifier");