我建議,我必須爲我正在開發的一個項目執行此操作,您可以提供一些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];
}
我認爲Carbon正在走向Dodo的道路。事實上,使用Carbon將你鎖定在64位之外。 我注意到你提到了CFNotificationCenterPostNotification,雖然它看起來像一個Core Foundation類。這可能是好的。 – 2010-01-18 14:59:57
是的,它不是碳。核心基礎,核心服務以及其他一些可以通過Carbon框架訪問的框架都可以在64位版本中找到。事實上,甚至一些碳的部分(例如,碳事件管理器)可用於64位。 – 2010-01-18 17:54:58