其他分享
首页 > 其他分享> > Neko Dlls在Haxe C的目标

Neko Dlls在Haxe C的目标

作者:互联网

我正在尝试使用Neko dll(用C语言编写)和Haxe的C目标.我能够在haxe中调用函数但不能传递值.

这是C代码 –

value Hello(value h)
{
    cout << val_int(h);
    return val_int(1);
}DEFINE_PRIM(Hello, 1);

这是Haxe代码 –

class Main
{
     var load = cpp.Lib.loadLazy( "ndll" , "Hello", 1 );
     static function main()
     {
          load(1);
     }
 }

仅当函数不接受参数时才执行.此外,从C函数返回到Haxe的值为null.

当我编译neko目标时,这段代码实际上工作得很好,但它似乎不适用于cpp目标.

任何帮助表示赞赏.

解决方法:

为了使其工作,您必须添加到cpp文件的标题:

#define IMPLEMENT_API
#include <hx/CFFI.h>

(而不是neko的标题)
如果你想让ndll同时在neko和hxcpp上运行,你也应该添加

#define NEKO_COMPATIBLE

在hx / CFFI.h之前包括.

您可以使用最适合您的方法进行编译,但我建议使用Build.xml生成您的ndll,因为它会自动为hxcpp的标头添加include和lib路径.您可以在此处看到一个非常简单的Build.xml示例:
http://pastebin.com/X9rFraYp

您可以在此处查看有关hxcpp的CFFI的更多文档:http://haxe.org/doc/cpp/ffi

标签:haxe,c
来源: https://codeday.me/bug/20190723/1513056.html