C++ 如何从C++;在窗户上?
我想在D中使用跳跃动作。C++ 如何从C++;在窗户上?,c++,windows,swig,d,leap-motion,C++,Windows,Swig,D,Leap Motion,我想在D中使用跳跃动作。 因此它没有C库,它只有C++库。 我试着在命令下swig2.0.9 swig -c++ -d -d2 leap.i 此命令输出Leap.d、Leap\u im.d、Leap\u wrap.cxx、Leap\u wrap.h. 但是,我不知道如何使用D中的包装器,也找不到如何使用包装器。 显示链接错误,以便完整地使用它。 如何在D2中使用这些包装器? 我可以不使用Leap.cpp(Leap.dll的源代码)吗 更新: 谢谢两个答案。很抱歉,因为太忙,回复晚了。 第一个
因此它没有C库,它只有C++库。 我试着在命令下swig2.0.9
swig -c++ -d -d2 leap.i
此命令输出Leap.d、Leap\u im.d、Leap\u wrap.cxx、Leap\u wrap.h.但是,我不知道如何使用D中的包装器,也找不到如何使用包装器。
显示链接错误,以便完整地使用它。
如何在D2中使用这些包装器?
我可以不使用Leap.cpp(Leap.dll的源代码)吗 更新: 谢谢两个答案。很抱歉,因为太忙,回复晚了。
第一个结论:我可以按照以下步骤在Win64上构建Leap示例代码。
swig -c++ -d -d2 leap.i
dmd -c Leap.d Leap_im.d -m64
dmd LeapTest.d Leap.obj Leap_im.obj -m64
execute LeapTest.exe (require x64 Leap.dll and Leap_wrap.dll)
我可以运行Leap程序。但程序会在帧事件回调时崩溃。
我将在x86上重试并调查原因。转到IRC,FreeNode或OFTC,channel#D。为了帮助您,我们必须查看这些文件中的内容。我的第一猜测是,你必须编译两个D文件,和C++文件到对象文件,并链接在一起。我想SWIG会将C++ API夷平为一堆C函数,这可能是LeAPuxRAPP.CXX所做的。
如果LASIAPI不复杂(即,只是一组简单的C++类),就有可能直接与它进行接口。请在此处阅读更多信息:。
一些有用的链接(一些信息可能已经过时):- Leap_wrap.h是列出了所有外部(C)包装器的头文件
- Leap_im.d是基于Leap_wrap.h的d模块,列出了相同的extern(C)函数
- Lig.d是使用LeaPixI.D作为实现的D模块,并复制与原始C++一个类似的API。