Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac OSX上导出DLL函数的正确方法_Macos_Dll_Dllexport - Fatal编程技术网

Macos 在Mac OSX上导出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中,所以我发现的不是好的和真实的。不合逻辑

我试图在MacOSX10.6上编译一个简单的DLL,但对于DLL提供给全世界使用的函数的正确声明方式感到困惑。下面是来自可靠来源的示例代码,我想到了:

__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显然是为了能够移植到其他平台。作为一个在苹果土地上的外国人,我在任何地方都找不到这样的解释:这些评价都是虚无缥缈的。好吧,现在我知道了!