【转载】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 ;
}
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
原文链接:http://blog.csdn.net/kuovane/article/details/45723645
【转载】cocs2dx中c++与c#互调的更多相关文章
- 如何快速转载CSDN中的博客
看到一篇<如何快速转载CSDN中的博客>,介绍通过检查元素→复制html来实现快速转载博客的方法.不过,不知道是我没有领会其精神还是其他原因,测试结果为失败.
- [转载]Java中继承、装饰者模式和代理模式的区别
[转载]Java中继承.装饰者模式和代理模式的区别 这是我在学Java Web时穿插学习Java设计模式的笔记 我就不转载原文了,直接指路好了: 装饰者模式和继承的区别: https://blog.c ...
- [转载]PyTorch中permute的用法
[转载]PyTorch中permute的用法 来源:https://blog.csdn.net/york1996/article/details/81876886 permute(dims) 将ten ...
- [转载]java中import作用详解
[转载]java中import作用详解 来源: https://blog.csdn.net/qq_25665807/article/details/74747868 这篇博客讲的真的很清楚,这个作者很 ...
- [转载]Pytorch中nn.Linear module的理解
[转载]Pytorch中nn.Linear module的理解 本文转载并援引全文纯粹是为了构建和分类自己的知识,方便自己未来的查找,没啥其他意思. 这个模块要实现的公式是:y=xAT+*b 来源:h ...
- [转载]Java中异常的捕获顺序(多个catch)
http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) ...
- [转载] Android中Xposed框架篇---利用Xposed框架实现拦截系统方法
本文转载自: http://www.wjdiankong.cn/android%E4%B8%ADxposed%E6%A1%86%E6%9E%B6%E7%AF%87-%E5%88%A9%E7%94%A8 ...
- JavaScript设计模式-单例模式、模块模式(转载 学习中。。。。)
(转载地址:http://technicolor.iteye.com/blog/1409656) 之前在<JavaScript小特性-面向对象>里面介绍过JavaScript面向对象的特性 ...
- Javascript模块化编程(一):模块的写法 (转载 学习中。。。。)
转载地址:http://www.ruanyifeng.com/blog/2012/10/javascript_module.html 阮一峰 大神:http://www.ruanyifeng.com/ ...
随机推荐
- 【等待事件】序列等待事件总结(enq: SQ - contention、row cache lock、DFS lock handle和enq: SV - contention)
[等待事件]序列等待事件总结(enq: SQ - contention.row cache lock.DFS lock handle和enq: SV - contention) 1 BLOG文档结 ...
- Ubuntu,QT5连接MySQL
用QT连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...
- Docker CentOS 7.2镜像systemd问题解决办法
docker的CentOS 7.2最新版官方镜像使用systemctl管理程序时会遇到如下错误: Failed to get D-Bus connection: Operation not permi ...
- ubuntu apache2服务器配置
把django开发好的项目部署到apache2服务器. 记录我的配置过程. apache,django,mod_wsgi,python版本如下.不同版本大同小异. ii apache2 2.2.22- ...
- Fast RCNN 训练自己数据集 (1编译配置)
FastRCNN 训练自己数据集 (1编译配置) 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ https:/ ...
- C++ 之 常量成员函数
类的常量成员函数 (const member function), 可以读取类的数据成员,但是不能修改. 1 声明 1.1 const 关键字 在参数列表后,加 const 关键字,声明为常量成员 ...
- leetcode: Path Sum II 迭代法
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- 合唱队形2 洛谷U5874
题目背景 上次老师挑出来的(N-K)位同学很不高兴,于是他们准备自己组建合唱队形.他们请了kkk来帮忙. 题目描述 他们安排了一个动作——手拉着手唱一首歌(就是他们围成一个圈).如果有两个相邻的同学的 ...
- 在WPF控件上添加Windows窗口式调整大小行为
起因 项目上需要对Canvas中的控件添加调整大小功能,即能在控件的四个角和四条边上可进行相应的拖动,类似Windows窗口那种.于是在参考以前同事写的代码基础上,完成了该功能. 代码实现 Adorn ...
- TestLink学习七:TestLink测试用例Excel转换XML工具
TestLink对于测试用例的管理来说,是蛮强大的,但是在导入导出这块,功能有点弱,本文针对测试用例的导入,转载了一个Excel转换成xml工具. 1.根据到处的测试用例xml,定义一下我的Excel ...