1

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

__declspsec(dllexport) pascal int ReturnTheNumberFive(void)

但是 gcc barfs 就可以了。示例代码实际拥有的是 MACPASCAL 和 DLLExport,我认为它们是宏。我浏览了#defines 的示例代码、SDK 等,并插入了我发现的内容。这些定义可能被隐藏在#ifs 中,所以我发现的并不是好的和真实的。不合逻辑的是,如果我只是做显而易见的事情并使用 DLLExport 和 MACPASCAL,编译器也会出错,所以这不是解决方案。

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

4

1 回答 1

5

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

所以,简而言之:

int ReturnTheNunmberFive(void) { return 6; }

于 2011-07-27T00:35:35.353 回答