Что бы я порекомендовал, и я должен был сделать это для проекта, над которым я работал, у вас могло быть несколько файлов obj-c ++, которые предоставляют и C / C ++ API, и внутренне используют код obj-c для запуска Док мигает.
По сути, вы создаете стандартный заголовочный файл C / C ++. На стороне кода вы делаете файл .m или .mm файл.
Это позволит вам написать один строковый элемент obj-c в вопросах непосредственно в функцию C / C ++, и, поскольку заголовочный файл находится в простом C / C ++, это не будет ошибкой компилятора для файлов не .mm. в проекте.
Это, конечно, предполагает компиляцию с помощью компилятора (например, GCC), который говорит на обоих языках.
Простой и (проверенный) пример такого подхода:
TriggerBounce.h
void TriggerBounce(char * filepath);
TriggerBounce.m
#import <Cocoa/Cocoa.h>
void TriggerBounce(char * filepath) {
NSString *pathToFile = [NSString stringWithCString:filepath encoding:NSUTF8StringEncoding];
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.DownloadFileFinished" object:pathToFile];
}