Пример #1
0
    //========================================

    // Use this for initialization
    void Start()
    {
        OnConnectCall = OnConnectCallFunc;

        j = MsgInit();


        if (j != 0)
        {
            return;
        }
        Debug.Log("=====msgmanager--=-==-");


        ///注册连接成功消息
        RegMsg(16, OnConnectCall);

        RegMsg(255, OnConnectCall);

        RegMsg(141, OnConnectCall);
        Debug.Log("=====msgmanager-1-=-==-");


        int ret = Connect("192.168.1.108", 61000, "", 0);

        i = ret;

        return;
    }
Пример #2
0
        public static void Main(string[] args)
        {
            int c = Add(1, 2);

            Console.WriteLine(c);

            //调用c中的WriteString
            WriteString("hello");

            var ptr = ReturnString();

            Console.WriteLine(Marshal.PtrToStringAnsi(ptr));
            ReleaseMemory(ptr);

            // 调用C中的AddInt方法
            int i = 10;

            AddInt(ref i);
            Console.WriteLine(i);

            //调用C++中的AddIntArray方法将C#中的数据传递到C++中,并在C++中输出
            int[] CSArray = new int[10];
            for (int iArr = 0; iArr < 10; iArr++)
            {
                CSArray[iArr] = iArr;
            }
            AddIntArray(CSArray, CSArray.Length);

            //调用C++中的GetArrayFromCPP方法获取一个C中建立的数组
            IntPtr pArrayPointer = GetArrayFromCPP();

            int[] result = new int[10];
            Marshal.Copy(pArrayPointer, result, 0, 10);
            for (int iArr = 0; iArr < 10; iArr++)
            {
                Console.Write(result[iArr]);
            }
            Console.WriteLine();

            //释放内存
            ReleaseMemory(pArrayPointer);

            //让委托指向将被回调的方法
            callback = CSCallbackFunction;

            //将委托传递给C++
            SetCallback(callback);

            //建立一个Vector3的实例
            Vector3 vector = new Vector3()
            {
                x = 10, y = 20, z = 30
            };

            //将vector传递给C++并在C++中输出
            Vector3 v = SendStructFromCSToCPP(vector);

            Console.WriteLine("({0}, {1}, {2})", v.x, v.y, v.z);
        }
Пример #3
0
        /// <summary>
        /// 批量设置dll的回调函数
        /// </summary>
        private void SetCallBack()
        {
            //委托指向
            callback_DEBUG = CSCallbackFunction_DEBUG;
            callback       = CSCallbackFunction;
            callupdateback = GetUpdateDate;

            SetCallback_DEBUG(callback_DEBUG);
            SetCallback(callback);
            SetUpdateCallback(callupdateback);
        }
Пример #4
0
    void Start()
    {
        callback = CSCallbackFunction;
        //调用方法中相加函数
        //i = addInt (1,111);


        //f = addFloat (100f,2.2f);

        i = 100;
        f = 111;

        i = Connect("127.0.0.1", (int)61010, "", 0);

        i = RegMsg(3, callback);
    }
Пример #5
0
    //========================================

    // Use this for initialization
    void Start()
    {
        socketindex = -1;

        Debug.Log(string.Format("======Start==={0}", socketindex));
        m_InteractionMgr = null;
        m_GameCtr        = null;

        m_myPlayer = CPlayer.Instance();

        m_GameTable = CTable.Instance();

        OnConnectCall = OnConnectCallFunc;

        j = MsgInit();


        if (j != 0)
        {
            return;
        }
        Debug.Log("=====msgmanager--=-==-");

        ///注册消息,iso注意此消息
        foreach (msg_id item in Enum.GetValues(typeof(msg_id)))
        {
            RegMsg((int)item, OnConnectCall);
        }

        ///注册连接成功消息
        //RegMsg((int)msg_id.ID_CONNECTION_REQUEST_ACCEPTED, OnConnectCall);

        //RegMsg((int)msg_id.PT_USER_INGAME_MSG, OnConnectCall);

        //RegMsg(141, OnConnectCall);
        Debug.Log("=====msgmanager-1-=-==-");


        int ret = Connect("192.168.1.110", 61000, "", 0);

        // int ret = Connect("35.196.108.73", 61000, "", 0);
        //   int ret = Connect("192.168.247.251", 61000, "", 0);

        i = ret;

        return;
    }
    void Init()
    {
        callback = GetComponent <CSCallback>();

        if (GameObject.Find("CharacterSelectorRoot") == null)
        {
            root                  = new GameObject();
            root.name             = "CharacterSelectorRoot";
            root.transform.parent = Camera.main.transform;
        }

        materials = new Material[characters.Length];

        int index = 0;

        foreach (Character _char in characters)
        {
            _char.obj.SetActive(true);
            _char.obj.transform.parent        = root.transform;
            _char.obj.transform.localPosition = new Vector3(index * xOffset, 0, 0);
            _char.obj.transform.localScale    = startObjectScale;
            materials[index] = _char.obj.GetComponent <Renderer>().material;

            if (_char.opened == false)
            {
                _char.obj.GetComponent <Renderer>().material = closeMaterial;
            }

            index++;
        }

        root.SetActive(false);

        priceText = buyUIButton.GetComponentInChildren <Text>();

        if (callback)
        {
            callback.OnInit();
        }
    }
Пример #7
0
 public static extern void SetCallback(CSCallback callback);
Пример #8
0
 public static extern void setCallBack(CSCallback callback);
Пример #9
0
 public Form1()
 {
     InitializeComponent();
     callback = CSCallbackFunction;
 }
Пример #10
0
 extern static int RegMsg(int msgid, CSCallback callback);
Пример #11
0
 private static extern void showUnity3dCamera(IntPtr data, int width, int height, int stride, CSCallback cs);
Пример #12
0
 void Start()
 {
     callback = CSCallbackFuction;
 }
Пример #13
0
        static void Main()
        {
            int c = Add(1, 2);

            Console.WriteLine(c);

            /**
             * unsafe需要在你项目右键 属性中设置 允许不安全代码
             */
            unsafe
            {
                //在传递字符串时,将字符串所在的内存固化
                //并取出字符串数组的指针

                /**
                 * fixed 语句禁止垃圾回收器重定位可移动的变量。
                 * fixed 语句只能出现在不安全的上下文中。Fixed 还可用于创建固定大小的缓冲区。
                 */
                fixed(char *p = &("helo".ToCharArray()[0]))
                {
                    WriteString(p);
                }

                //调用C++的AddInt 方法
                int i = 10;

                AddInt(&i);
                Console.WriteLine(i);

                //调用C++中的AddIntArray方法将C#中的数据传递到C++中,并在C++中输出
                int[] CSArray = new int[10];
                for (int iArr = 0; iArr < 10; iArr++)
                {
                    CSArray[iArr] = iArr;
                }

                fixed(int *pCSArray = &CSArray[0])
                {
                    AddIntArray(pCSArray, 10);
                }

                //调用C++中的GetArrayFromCPP方法获取一个C++中建立的数组
                int *pArrayPointer = null;

                pArrayPointer = GetArrayFromCPP();
                for (int iarr = 0; iarr < 10; iarr++)
                {
                    Console.WriteLine(*pArrayPointer);
                    pArrayPointer++;
                }
            }

            //在CS的主程序中让callback指向CSCallbackFunction方法,代码如下所示:
            //调用委托所指向的方法
            callback = CSCallbackFunction;
            //将委托传递给C++  SetCallback方法被执行后,在C#中定义的CSCallbackFunction就会被C++所调用。
            SetCallback(callback);



            //建立一个Vector3的实例
            Vector3 vector = new Vector3()
            {
                X = 10, Y = 20, Z = 30
            };

            SendStructFromCSToCPP(vector);



            Console.Read();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Пример #14
0
 extern static void SetCallback(CSCallback callback);