DプログラムからC++関数を呼び出す方法は? 私はまだそれを行う方法を理解できません。 実行するコマンドは何ですか? 私はFedoraでdmdを使用しています。あなたがCの関数を呼び出している場合、私は、考えることができますD言語からC++(C)を呼び出す
答えて
最も単純な例:
$ cat a.c
int f(int a, int b){
return a + b + 42;
}
$ cat a.di
extern (C):
int f(int, int);
$ cat b.d
import std.stdio;
import a;
void main(){
writeln(f(100, 1000));
}
$ gcc -c a.c
$ dmd b.d a.o
$ ./b
1142
$
共有オブジェクトを使用している場合は、あなたのことができるようにのようなもの:この例では
$ cat sdltest.di
module sdltest;
extern (C):
struct SDL_version{
ubyte major;
ubyte minor;
ubyte patch;
}
SDL_version * SDL_Linked_Version();
$ cat a.d
import std.stdio;
import sdltest;
void main(){
SDL_version *ver = SDL_Linked_Version();
writefln("%d.%d.%d", ver.major, ver.minor, ver.patch);
}
$ dmd a.d -L-lSDL
$ ./a
1.2.14
$
、私はSDL関数にリンクしました。 -L
の引数をdmd
に設定すると、引数をld
に渡すことができます。この場合は、-lSDL
を使用してSDLにリンクします。
Dインターフェイスファイル(.di
)はhereと記載されています。
htodもご覧ください。
それは素晴らしいです!どうもありがとうございました。できます。 .diファイルとは何ですか?私はそれについて前に読んでいない。 – Stan
たとえば、libxmlを使用するには、使用する関数のバインディングを記述する必要があります。 – Stan
@StanislavFeldman:誰かがそれを前にやっていない限り、そうだと思います。一般的なライブラリにはすでにDバインディングがあります。特にlibxmlが必要ですか? Dには['std.xml'](http://dlang.org/phobos/std_xml.html)モジュールがあります。また、共有ライブラリを使ったコンパイルの例も追加しました。 – Vlad
- 1. 呼び出すC言語は、C#
- 2. GroovyからC言語APIを呼び出す
- 3. ARMアセンブリ言語からc関数printfを呼び出す
- 4. C/C++アプリケーションからシステムDサービスを起動するかD-Busサービスを呼び出す
- 5. C言語の関数呼び出しのシーケンス
- 6. PythonからC#ライブラリを呼び出す
- 7. C#からVmWare PowerCLIを呼び出す
- 8. IronRubyからC#を呼び出す
- 9. C++ - クラステンプレートからメソッドを呼び出す
- 10. C++からWebメソッドを呼び出す
- 11. C++からHaskellライブラリを呼び出す
- 12. C#アプリケーションからChromeを呼び出す
- 13. C++からWebサービスを呼び出す
- 14. PowershellからC#dllを呼び出す
- 15. C#からpowershellコマンドレットを呼び出す
- 16. C#からダイアログウィンドウを呼び出す
- 17. Objective-CからPythonを呼び出す
- 18. C#からHaskellを呼び出す
- 19. CプログラムからJavaを呼び出す
- 20. Cからのシェルスクリプトを呼び出す
- 21. C:型変換は、プログラミング言語C第2版からの関数呼び出し
- 22. C#:コードからの呼び出し呼び出し階層
- 23. C++からC#関数を呼び出していますか?
- 24. カスタムフリーCルーチンをC++デストラクタから呼び出しますか?
- 25. C言語のカラー出力
- 26. JNAからC関数呼び出し
- 27. d言語スレッド
- 28. C++ APIをC#から呼び出す方法
- 29. COMなしのアンマネージC++アプリからC#dllを呼び出す
- 30. C++/CLIアプリケーションからC#.dllを呼び出す方法は?
http://dlang.org/interfaceToC.htmlを参照してください。C言語でのみ動作するようですが、C++とのインターフェイス方法については、http://dlang.org/cpp_interfaceを参照してください。 html –
私はそのチュートリアルを見ました。 .diファイルの記述がありませんでした。私と解決策を共有してくれているVladに感謝します。 – Stan