从Objective C调用C ++ [英] From Objective C call C++
问题描述
我有问题调用c ++中的一些函数从objective-c。
我有以下代码。在objCFuncA如何调用funcBCallback(std :: string inText)函数?感谢
i have problem with calling some function in c++ from objective-c. I have the following code. In "objCFuncA" how do i call "funcBCallback(std::string inText)" function?. Thanks
SampleCallback.h
class SampleCallback
{
public:
static void funcA();
static void funcBCallback(std::string inText);
};
SampleCallback.mm
void SampleCallback::funcA()
{
[[SampleCallback_iOS shared] objCFuncA:"My text from C++"];
}
void SampleCallback::funcBCallback(std::string inText)
{
NSLog(@"SUCCES GET RETURN");
}
SampleCallback_iOS.h
$ b
SampleCallback_iOS.h
@interface SampleCallback_iOS : NSObject
+ (SampleCallback_iOS*)shared;
- (void)objCFuncA:(const char*)inString;
@end
SampleCallback_iOS.m / p>
SampleCallback_iOS.m
@implementation SampleCallback_iOS
static SampleCallback_iOS* instance = nil;
+ (SampleCallback_iOS*)shared
{
@synchronized(self) {
if (instance == nil) {
instance = [[self alloc] init];
}
}
return instance;
}
- (void)objCFuncA:(const char*)inString
{
NSLog(@"Text from C++: %s", inString);
// How to call SampleCallback::funcBCallback?
}
@end
推荐答案
它不可能从纯粹的Objective-C调用C ++函数(就像你不能从纯C调用C ++)。
It's not possible to call C++ functions from plain Objective-C (like you can't call C++ from plain C).
你可以将你的Objective-C文件转换为Objective -C ++,但。要这样做,只需重命名文件以使用扩展名 .mm
而不是 .m
。
You can convert your Objective-C file to Objective-C++, though. To do so, just rename the file to use the extension .mm
instead of .m
.
这篇关于从Objective C调用C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!