DLL项目应该是跨平台使用的类型

时间:2012-09-07 07:03:42

标签: c# c++ ios ipad dll

我们有一个C#.NET和Apple iPad的应用程序。该应用程序将执行类似的功能。为此,我们有一个协议层,我们正在考虑将其保留为通用代码。为此,我们考虑为协议模块创建一个C ++ DLL,以便它可以在C#和iPad上使用。为了创建C ++ DLL,我有一个基本问题:

在创建dll项目时,我们应该选择哪个选项?我们可以为MFC,Win32,ATL等创建一个dll。对我的要求最好的选择是什么?

2 个答案:

答案 0 :(得分:1)

你不应该使用MFC,因为这些是iOS上无法提供的Microsoft Foundation Classes。可能Win32可能是你最好的猜测 - 但如果你想在非Windows环境中使用DLL,请确保不要包含任何非标准的Windows头文件。

我建议您经常在两种环境中编译文件。如果您需要高级功能,您可能还需要查看boost等多平台库。

答案 1 :(得分:1)

我建议Mono查看在Windows和iOS上构建C#应用程序。

如果你想定位iPad,你需要为iOS而不是Mac OS构建。

您无法为iOS构建动态链接库,只能构建静态库。请注意,在iOS上有类似的DLL,但只有Apple可以构建它们(或者如果你的iPad被越狱,你可以自己构建它们,但这会使你的应用程序从AppStore中取消资格)。

iOS无论如何都与Windows无关,因此Win32库无法在iOS上运行。您的通用“协议模块”(如果您指的是可通过TCP / IP或类似设备与其他设备连接的低级代码)将需要根据其运行的平台存在显着差异。