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

Dar*_*enW 1 macos dll dllexport

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

__declspsec(dllexport) pascal int ReturnTheNumberFive(void)
Run Code Online (Sandbox Code Playgroud)

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

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

Yan*_*min 5

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

简而言之:

int ReturnTheNunmberFive(void) { return 6; }