VC++封装DLL过程,导入Unity中调用
不知不觉就这样注册属于一个自己的博客园,用来记录和分享自己工作、学习过程中遇到的问题、解决方案以及心得。 这是我的第一篇博客,嗯,下手写这一篇博客时,
感觉被按下地上,摩擦摩擦,然后再摩擦,感谢博客园带走我的第一次。 哈哈哈。 我是由法学专业转行到U3D程序开发,工作也是一年多了,但是菜鸟一枚,希望大佬多多指教。
既然今天决定要写一篇博客,那就记录一下之前在工作中遇到的问题---------封装VC++ DLL导入U3D中调用,C++又回调C#函数。
一、VC++ DLL导出步骤
按部就班,第一步先在头文件添加
#if defined (EXPORTBUILD)
# define _DLLExport __declspec (dllexport)
# else
# define _DLLExport __declspec (dllimport)
#endif
*要导出的函数添加 关键字_DLLExport,头文件所导出的函数必须与实现的函数参数相对应,具体实现函数中因为带有一个带有参数的回调函数*getPos(float,float),所以在头文件
中typedef void(*GetPos)(float, float)也是一种固定写法。
*具体实现函数的声明,因为C++没有学习过,用C#写法去写了。不知道这样的写法有没有错误,由于时间关系,所以并没有深入其中,如果大神能看到这里,希望大神指教指教
*点击项目属性,配置类型—动态库
*在输出目录中能看到生成DLL文件的目录
二、U3D 中调用DLL
*把生成的DLL文件导入Unity文件目录中的Plugins文件夹
*c# 调用DLL,以下为固定写法,必须先引用using System.Runtime.InteropServices命名空间,需要注意中的一点就是C++中的回调函数对应C#中的委托,把委托传到CheckPos函数即可
好了,就这样。 第一次写博客,逻辑不是很严谨。






浙公网安备 33010602011771号