UnityD调用DLL的方法.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UnityD调用DLL的方法

接触Unity 3D 时间不长,看到网上有人问怎么通过Unity来调用Dll,而且发现这个问题似乎是用unity的朋友并不熟悉DLL的使用造成的,正好我使用过C++,对DLL还比较熟悉,因此写了一个小小的教程来谈谈unity的Dll调用方法。更多精彩请关注 1.创建DLL? ?? ? 困扰Unity人员的主要问题大概出于Dll不会生成。这个确实比较麻烦,我这里给出一个vs 2008中创建DLL的方法。? ?? ?1)首先打开vs2008,当然2005或者2003也都差不多。我这里用的是2008.? ?? ?在C++项目中选择 Win32程序,然后在控制台程序或者win32程序任选一个。 写上项目名字点创建。? ???? ? ?2) 任选一个的原因是这里并不重要,重要的是下一步,创建以后会出现一下这个面板。 选下一步见如下选项:? ?? ? 注意,首先选DLL,证明我们这个程序是个dll项目。选“空项目”的目的是建一个计较干净的DLL程序,里面的代码都有我们手写完成,这样写过什么我们都知道。? ?? ?? ?? ?? ? ? 3)创建项目,这样我们得到一个空项目,在这个项目中,除了几个文件加以外什么也没有,我们在文件夹上点右键,创建新项。在新项里面分别创建一个CPP文件和一个头文件。? ?? ???? ? ? 4)得到如下的两个文件:起什么名字并不重要? ?? ???? ? ? 5)以下是2个文件的代码:DLL的生成要说起来也一大堆的知识,我这里简单的说一下,dll的使用和生成用的宏不同,上面的代码主要是区分在不同环境中该使用那个宏,如果不理解就不要管了,你们只需要改最下面的哪个函数就行了。头文件///////////////////??DLL.h ///////////////////////////// #if defined (EXPORTBUILD)?? # define _DLLExport __declspec (dllexport)?? # else?? # define _DLLExport __declspec (dllimport)?? #endif?? ?? extern C??int _DLLExport MyADD(int x,int y);?? 复制代码 代码文件//////////////////? ?DLL.cpp //////////////////////////// //宏定义?? #define??EXPORTBUILD?? ?? //加载头文件?? #include DLL.h?? ?? //设置函数?? int _DLLExport MyADD(int x,int y)?? {?? ? ? return x+y;?? }?? ? ?? ? 这样我们就生成了一个MyAdd()函数,传入两个数就会返回它们的和。 然后编译这个程序,会出现下面的对话框,那就证明你成功了!然后再把这个DLL文件放在你的unity工程的assert的Plugins(如果没有这个文件夹就手动创建一个)。? ?? ?? ? ? 6) 在unity中创建一个C#脚本,调用我们刚刚生成的dll,在这里我们的DLL名字就叫DLL,所以写的是[DllImport (DLL)] ,如果你的名字是Test.dll,那就写[DllImport (Test)]? ? 写一个GUI按钮上显示运行的结果。using UnityEngine;? ? ?? using System.Collections;? ? ?? using System.Runtime.InteropServices;? ? ?? public class NewBehaviourScript : MonoBehaviour {?? ? ?? ??? ? ?? ?[DllImport (DLL)]? ? ? ?? ?private static extern int MyADD(int x,int y);? ? ? ?? ?int i = MyADD(5,7);? ??? ? ? // Update is called once per frame?? ? ? void Update () {}?? ? ? void OnGUI()? ? ? ? {?? ? ?? ???GUI.Button(new Rect(1,1,200,100),this DLL??i = 5+7, i is +i+);?? ? ? }?? }?? 复制代码 ? ???运行通过就可以在界面上看到 ? ?? ?? ?? ? ???7)输出unity项目exe到目录,然后在目录中也添加Plugins目录,把DLL文件也考进去,然后点运行,呵呵 成功了吧!? ?? ?????。 ? ???以上是u

文档评论(0)

phl805 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档