Macos 在Mac OSX上导出DLL函数的正确方法
我试图在MacOSX10.6上编译一个简单的DLL,但对于DLL提供给全世界使用的函数的正确声明方式感到困惑。下面是来自可靠来源的示例代码,我想到了:Macos 在Mac OSX上导出DLL函数的正确方法,macos,dll,dllexport,Macos,Dll,Dllexport,我试图在MacOSX10.6上编译一个简单的DLL,但对于DLL提供给全世界使用的函数的正确声明方式感到困惑。下面是来自可靠来源的示例代码,我想到了: __declspsec(dllexport) pascal int ReturnTheNumberFive(void) 但gcc却对它嗤之以鼻。示例代码实际包含的是MACPASCAL和DLLExport,我假设它们是宏。我浏览了示例代码、SDK等,查找定义并插入了我发现的内容。这些定义可能被隐藏在ifs中,所以我发现的不是好的和真实的。不合逻辑
__declspsec(dllexport) pascal int ReturnTheNumberFive(void)
但gcc却对它嗤之以鼻。示例代码实际包含的是MACPASCAL和DLLExport,我假设它们是宏。我浏览了示例代码、SDK等,查找定义并插入了我发现的内容。这些定义可能被隐藏在ifs中,所以我发现的不是好的和真实的。不合逻辑的是,如果我只是简单地使用DLLExport和MACPASCAL,编译器也会呕吐,所以这不是解决方案
让应用程序可以使用DLL函数的正确方法是什么 默认情况下,所有符号都在.dylib中可见。没有调用约定更改,例如Pascal调用约定 因此,简言之:
int returnthenumberfivevoid{return 6;}默认情况下,所有符号都在.dylib中可见。没有调用约定更改,例如Pascal调用约定 因此,简言之:
int returnthenumberfivevoid{return 6;}在Mac上,“DLL”不是DLL;该文件本身称为.dylib,通常嵌入在.framework中。这不仅仅是对术语的吹毛求疵。。。我想如果没有社区里常用的词语,用谷歌搜索信息就更难了!所以,请从现在开始使用dylib和framework这个词。我们这些突然发现自己置身于Mac编程世界的人为新来者提供了一个指南,真正解释了这一切。现在,它只是一些零碎的东西,比如你的评论;该文件本身称为.dylib,通常嵌入在.framework中。这不仅仅是对术语的吹毛求疵。。。我想如果没有社区里常用的词语,用谷歌搜索信息就更难了!所以,请从现在开始使用dylib和framework这个词。我们这些突然发现自己置身于Mac编程世界的人为新来者提供了一个指南,真正解释了这一切。就目前而言,这只是你的评论。DLLExport和MACPASCAL显然是为了便于移植到其他平台。作为一个在苹果土地上的外国人,我在任何地方都找不到这样的解释:这些评价都是虚无缥缈的。好吧,现在我知道了!DLLExport和MACPASCAL显然是为了能够移植到其他平台。作为一个在苹果土地上的外国人,我在任何地方都找不到这样的解释:这些评价都是虚无缥缈的。好吧,现在我知道了!