dll を matlab にロードします。
[met,b]=loadlibrary([geodesic_library '.dll'], hfile);
次に、次のように dll から関数を呼び出します。
[id, tmp1, tmp2, num_edges, edges] = calllib(geodesic_library, 'new_mesh', length(p)/3, p, length(t)/3, t, 1, tmp);
これによりエラーが発生します
Method was not found.
ただし、ライブラリのメソッドを見ると、メソッドが存在することがはっきりとわかります。
met =
Columns 1 through 4
'new_mesh' 'new_algorithm' 'delete_algorithm' 'delete_mesh'
Columns 5 through 8
'propagate' 'trace_back' 'distance_and_source' [1x36 char]
の内容もここにありますb
:
geodesic_matlab_api.h
geodesic_release_thunk_pcwin64.c
Creating library geodesic_release_thunk_pcwin64.lib and object geodesic_release_thunk_pcwin64.exp
しかし、私が呼び出すM = libfunctions([geodesic_library '.dll']
と、それM
は空です。
私は元の作者のサンプル コードを使用していますが、これは機能するはずです。唯一のことは、C++ コードを 64 ビット DLL に再コンパイルしたことです。