私のCコードでdllファイルを使用したいが、構文に関して非常に混乱している。Cプログラムで動的ライブラリdllを使用
マイ・ストーリー:Matlab(f(x1、x2)= x1 * x2)でシンプルな関数を作成し、 "Matlab Coder"を使ってCコードに変換してexeを生成しました。 arguments.Nowとのターミナルは、exeの代わりにDLLを生成し、DLLを使用したい。
私はコードの説明をすることができなかったので、私はグーグルで私のために仕事をしました。私はhttp://en.cppreference.com/w/の構文を見上げますが、驚いたことに、例えばGetProcAddressまたはLoadLirbary。ここで
は、私は、DLLを使用したいしたC-コード:dllファイルを生成した後
#include <stdio.h>
#include <stdlib.h>
/*
* In my dream I would load the dll function here
* with something like Load(mytimes4.dll)
*/
int main(int argc, char *argv[]) {
double x1,x2,myresult;
//Load Arguments from Terminal
sscanf(argv[1], "%lf", &x1);
sscanf(argv[2], "%lf", &x2);
// Use and print the function from mytimes4.dll
myresult = mytimes4(x1,x2);
printf("%3.2f\n",myresult);
return 0;
}
を、Matlabのは私に次のフォルダました: "dll-folder" produced by Matlab
を誰かが私に与えることができます私の例で動作するシンプルで完全なコードです。どのファイルが必要ですか(おそらく.defか.exp)?また、dllを使用している行の説明については、私は感謝しています。そうでない場合は、複雑な構文を合理的にする背景知識があるかもしれません。事前に感謝しています!
システム情報:Windows 7 Pro 64、Matlab 642016b、gcc cygwin 64、Eclipse IDE。
私はcppreferenceがOpenLibraryとのGetProcAddressのエントリを持っていなかったことに驚いていないよ - これらの関数は、Windows API(C++標準の一部ではない)の一部です。 OpenLibraryの説明については、https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspxを参照してください。たとえば、https://msdn.microsoft.comを参照してください。 OpenLibraryとGetProcAddressの使用例については/en-us/library/windows/desktop/ms686944(v=vs.85).aspxを参照してください。 – thurizas
私はその記事[[Pelles CのDLLへのリンク](http://stackoverflow.com/questions/40282524/link-to-a-dll-in-pelles-c)に提案したソリューションを確認できます。 –
'mytimes4.h'と' mytimes4.def'の内容は何ですか? –