我无法在给定的Visual Studio项目中从Leap SDK添加Leap.dll和Leapcsharp.dll。我正在使用VS2012 express for Windows Desktop。
我从leapmotion网站下载了sdk。我收到错误“无法加载引用。请确保该文件是可访问的,这是有效的程序集或COM组件。”
答案 0 :(得分:1)
leap.dll和leapcsharp.dll中的一个目录是LeapCSharp.NET3.5.dll
和LeapCSharp.NET4.0.dll
。
(LeapDeveloperKit\LeapSDK\lib)
这些是Visual studio引用的工具。
如果要使用leap.dll文件,则需要使用P/Invoke
编辑: 也许您可以查看此leap tutorial,并附上code examples。
这是一个更好的P/Invoke tutorial。
使用像DLL Export Viewer这样的应用程序,您可以看到您的leap dll可用的所有方法。这些将是您使用P / Invoke的入口点。还有一个PInvoke assistance tool会为您编写c#。
但是,使用leap.dll
:
[DllImport("leap.dll")]
public static extern bool hasFocus();
与使用LeapCSharp.Net4.0
dll引用执行此操作相同:
Leap.Controller con = new Controller();
var focus = con.HasFocus;
所以你不需要这两套DLL。
答案 1 :(得分:1)
来自Leap Motion Developper Documentation
在Windows上,确保Sample.exe和 LeapCSharp.NET3.5.dll或LeapCSharp.NET4.0.dll都在 当前目录。使用
lib\x86
目录中的库 32位项目。将lib\x64
目录中的库用于64位 项目。 [...]
您只需要LeapCSharp.NET3.5.dll或LeapCSharp.NET4.0.dll来编译您的项目。但是您需要非托管库Leap.dll
和LeapCSharp.dll
来运行您的应用程序(在Leap SDK中的lib\x86
或lib\x64
中)
我个人将这些非托管库放在解决方案目录下的App_Bin\<platform name>
文件夹(&lt; platform name&gt; = x84或x64)中,并使用以下post-build命令将它们复制到编译器输出目录(例如MyProject\bin\x64\Debug
)
xcopy /Y /D "$(ProjectDir)..\App_Bin\$(PlatformName)\*.*" "$(ProjectDir)bin\$(PlatformName)\$(ConfigurationName)\"
答案 2 :(得分:0)
我遇到了同样的问题。
您必须在解决方案中添加现有项目,然后从文件夹中选择文件Leap.dll,LeapCSharp.dll:LeapDeveloperKit \ LeapSDK \ lib(x86或x64)和LeapCSharp.NET4.0.dll或LeapCSharp.NET3 .5.dll(取决于你在当前项目中使用框架4或3.5)来自文件夹:LeapDeveloperKit \ LeapSDK \ lib。然后,您必须在每个中进行严格单击,然后选择“属性”选项。您必须确保&#34;复制到输出目录&#34;使用&#34; copy allwas&#34;选择选项。选项(非常重要)。然后你必须在参考文献 - &gt;中进行严格的点击。添加参考 - &gt;浏览 - &gt;选择你的proyect(你当前的解决方案) - &gt;选择LeapCSharp.NET4.0.dll(来自文件夹) - &gt;好。这就是全部。
要么
见this video分钟11:29。她告诉你更好。
答案 3 :(得分:0)
您只需将Leap.dll和LeapCSharp.dll文件添加到项目中即可。
并在Visual Studio中设置文件属性
复制到输出目录=始终复制;
还要将LeapCSharp.NET4.0.dll或LeapCSharp.NET3.5.dll项目的引用添加到项目中。引用必须与用于调试或释放项目的机器类型相对应。这些文件在SDK中提供给您