zoukankan      html  css  js  c++  java
  • IOS使用C#预处理命令,多种SDK共存

    当我们使用Unity接 91,XY助手等等SDK时候. 我们需要使用[DllImport("__Internal")] 来声明一个C++的方法调用.

    不同的SDK总会有不同的方法. 我习惯是写成 XYSDK类,  Baidu91SDK类里面封装的各种[DllImport("__Internal")]声明的方法

    问题就来了, 如果我们发布XY SDK,而91 SDK的方法并没有放在xcode工程里面. 所以造成编译不通过.我们就需要把91 C++封装好的方法放入工程当中.

    我们可以使用预处理命令(来选择编译某些代码),这样就不需要发布XY,还要把91 C++封装好的方法放入到Xcode中编译啦

     

    #define BaiDuSDK
    //#define XYSDK
    //如果我们需要发那个版本的SDK,就注释掉其他的#define.
    
    
    using UnityEngine;
    using System.Collections;
    
    
    BaiDu91SDK
    {
    #if (BaiDuSDK)
        [DllImport("__Internal")]
        private static extern void 购买道具 ();
    #endif
    
    }
    
    XYSDK
    {
    #if (XYSDK)
        [DllImport("__Internal")]
        private static extern void 打开悬浮窗口 ();
    #endif
    }

    上面代码很简单  #define BaiDuSDK.  定义个预处理命令变量(它就是一个标记)

    #if(BaiDuSDK){    //如果标记被定义

         //里面的代码将会被编译

    这样就是实现代码选择编译O(∩_∩)O~

    如果你感兴趣,你可以把你妹妹介绍给我
  • 相关阅读:
    # ConfigureAwait常见问题解答
    # Oracle 常用语句
    # C# 中的Task创建指南
    ASP.NET Core Web API 跨域(CORS) Cookie问题
    Order by 优化
    VMware 安装 CentOS 7
    ThreadLocal 内存泄漏问题深入分析
    Zookeeper 如何保证分布式系统数据一致性
    Redis 5.0 安装
    Redisson 实现分布式锁的原理分析
  • 原文地址:https://www.cnblogs.com/plateFace/p/4336427.html
Copyright © 2011-2022 走看看