cocs2dx短信接入_cocs2dx中c++与c#互调

文章有参考http://www.cnblogs.com/zhxilin/archive/2013/03/20/2971331.html

下面以接入九幽统计插件为例

Step 1:如果是cocos2dx的话,每个版本不一样,比如3.6的话,已不支持wp8的,原因如下:

WP8: remove WP8 support because Angle don't support WP8 any more

以3.3的版本为例,直接打开proj.wp8-xaml目录下的工程文件;

如果不是cocos2dx,那就创建一个directx and xaml 工程。

Step 2:

新建 文件ICallback.h,例如内容可参考如下:

/***

Code begin

***/

#pragma once

namespace SilverlightDirect3DInterop1Comp

{

[Windows::Foundation::Metadata::WebHostHidden]

public interface class ICallback

{

public:

virtual void Exec(Platform::String ^Command, Platform::String ^Param);

int getOfferPoints();

void startLevel(int nLevel);

void failLevel(int nLevel);

void filishLevel(int nLevel);

};

}

/***

Code end

***/

Step 3:在Direct3DInterop.h文件中加入成员变量和成员函数

public:

void SetXmalCallback(ICallback^ callback){ m_globalCallback = callback; };

private:

ICallback^ m_globalCallback;

Step 4:

新建文件JiuYouCallback.cs,内容可参考如下:

using System;

using System.ComponentModel;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Threading;

using JYAnalyticsSdk;

namespace SilverlightDirect3DInterop1Comp

{

public sealed class JiuYouCallback : ICallback

{

//public MainPage m_mainPage;

static public int s_nOffserPoints;

public void Exec(String Command, String Param)

{

//Execute some C# code, if you call UI stuff you will need to call this too

//Deployment.Current.Dispatcher.BeginInvoke(() => {

// //Lambda code

//}

}

public int getOfferPoints()

{

MessageBox.Show("jiuyou", "jiuyou", MessageBoxButton.OK);

return 10;

}

public void startLevel(int nLevel)

{

JYAnalytics.TrackEvent("startlevel", Convert.ToString(nLevel));

}

public void failLevel(int nLevel)

{

JYAnalytics.TrackEvent("faillevel", Convert.ToString(nLevel));

}

public void filishLevel(int nLevel)

{

JYAnalytics.TrackEvent("filishlevel", Convert.ToString(nLevel));

}

}

}

Step 5

在 MainPage.xaml.cs中的找到

private void DrawingSurface_Loaded(object sender, RoutedEventArgs e)

在里面加入

JiuYouCallback sCallBack = new JiuYouCallback();

m_d3dInterop.SetXmalCallback(sCallBack);//这句是c#调用c++的方法

Step 6

前面5步已经把c++ c#互调的框架搭好了。下面测下是否成功

在Direct3DInterop.cpp文件里添加如下

void Direct3DInterop::OnPointerReleased(DrawingSurfaceManipulationHost^ sender, PointerEventArgs^ args)

{

int nPoints = m_globalCallback->getOfferPoints();

}

Step 7,运行程序,记得把弄成如下图这样测试

Step 8

接入九幽统计插件,参考文档《九幽数据统计插件(WP8)使用说明文档》

Ps:

注意命名空间要一致,否则可运行不起来哦

比如cocos2d的,c#跟c++这边都有cocos2d

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值