- 论坛徽章:
- 0
|
1、VC下新建"Dynamic-link Library" 工程
2、新建"test_nif.c",内容如下:
- #include "erl_nif.h"
- static ERL_NIF_TERM hello(ErlNifEnv* env)
- {
- return enif_make_string(env, "Hello world!");
- }
- static ErlNifFunc nif_funcs[] =
- {
- {"hello", 0, hello}
- };
- ERL_NIF_INIT(niftest,nif_funcs,NULL,NULL,NULL,NULL)
-
复制代码
3、拷贝 \erl5.7.4\erts-5.7.4\include 下的erl_nif.h、erl_nif_api_funcs.h到工程目录下
4、编译生成niftest.dll
5、在niftest.dll目录内新建erl测试脚本,代码如下:
- -module(niftest).
- -export([init/0, hello/0]).
- init() ->
- ok=erlang:load_nif("./niftest", 0), true.
- hello() ->
- "NIF library not loaded".
-
复制代码
6、测试结果:
1> c('niftest').
{ok,niftest}
2> niftest:init().
true
3> niftest:hello().
"Hello world!"
至此所有工作完成。
[ 本帖最后由 bs 于 2009-11-30 11:53 编辑 ] |
|