因为Unity3D项目需要,所以,需要用到DLL来封装一些功能。
常年使用Unity3D,c++基本忘记的差不多了。
现在又要开始第N轮的复习。还有一个原因就是,貌似Unity3D,又走向il2cpp的趋势。。所以,还是赶紧抓回c++吧。
/************************************** 多余的介绍 完成 **************************************/
头文件:ClassTest.h
typedef int(*pInt)(int);//定义函数指针,加别名才能放在vector中
class ClassTest
{
private:
map<string, pInt> map_pInt;//map容器,,其实,使用原因,主要是因为要复习。。
public:
void AddCallBack(string key, pInt callback);
void UseCallBack(string key, int data);
};源文件:ClassTest.cpp
void ClassTest::AddCallBack(string key, pInt callback)
{
map_pInt.insert(pair<string, pInt>(key, callback));
}
void ClassTest::UseCallBack(string key, int data)
{
cout << "InputParam:" << data << "\t结果:" << map_pInt[key](data) << endl;
}测试文件:main.cpp
//测试函数
int add(int a)
{
return a*a;
}
int main()
{
ClassTest* classTest= new ClassTest();
eventmgr->InitCallBack("callback", add);
for (int i = 0; i < 10; i++)
{
eventmgr->UseCallBack("callback", i);
}
}
运行结果:
省略,自己测试哈。。博猪是懒逼!!
文章讨论了在Unity3D项目中使用DLL进行功能封装的需求,以及C++复习的原因,特别是由于IL2CPP趋势的影响。详细介绍了ClassTest类的实现,包括头文件ClassTest.h、源文件ClassTest.cpp和测试文件main.cpp的代码示例。通过测试函数展示了如何使用ClassTest类,并提供了运行结果。

1259

被折叠的 条评论
为什么被折叠?



