在Mac OSX上导出DLL函数的正确方法

时间:2011-07-27 00:33:11

标签: macos dll dllexport

我正在尝试在Mac OS X 10.6上编译一个简单的DLL,并且对于声明DLL为全世界提供使用的函数的正确方法感到困惑。根据可靠来源的示例代码,我提出了:

__declspsec(dllexport) pascal int ReturnTheNumberFive(void)

但gcc barfs就可以了。示例代码实际上是MACPASCAL和DLLExport,我假设是宏。我浏览了#defines的示例代码,SDK等,并插入了我发现的内容。这些定义可能已经埋没在#ifs中,所以我发现并不好。不合逻辑地,如果我只是做明显的并使用DLLExport和MACPASCAL,编译器也会barfs,所以这是没有解决方案。

使应用程序可以使用DLL函数的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

默认情况下,所有符号都在.dylib中可见。没有调用约定更改(例如Pascal调用约定)

简而言之:

int ReturnTheNunmberFive(void) { return 6; }