我正在尝试创建一些可以从iPhone应用程序中的Objective-C和C++代码调用的实用程序函数.我有第三方C++类,无法编译为ObjectiveC++(.mm).我有一个头文件声明我的函数,然后是.c文件定义它们.我已检查拼写错误三倍,但由于某种原因,我的链接器无法找到任何函数的定义.
这是C帮助函数的标题:
#ifndef FILE_LOADER_H
#define FILE_LOADER_H
#if __cplusplus
extern "C" {
#endif
void * loadDataFromFile(const char * szFilename, bool bDocument);
void * loadImageFromFile(const char * szFilename, bool bDocument);
void loadMeshFromFile(const char *szFilename, void* pMesh);
#if __cplusplus
} // Extern C
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
这是.c文件:
#include "FileLoader.h"
#include <objc/objc.h>
#include <objc/message.h>
#include <Foundation/Foundation.h>
void * loadDataFromFile(const char * szFilename, bool bDocument)
{
Class loaderClass = NSClassFromString(@"Loader");
void * pReturnVal = objc_msgSend(loaderClass, NSSelectorFromString(@"loadDataFromFile:document"), szFilename, bDocument);
return pReturnVal;
//return [Loader loadDataFromFile:szFilename document:bDocument];
}
void …Run Code Online (Sandbox Code Playgroud)