teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

C\+\+ support in BridJ リンク

2015/12/11 06:40

投稿

退会済みユーザー
answer CHANGED
@@ -6,7 +6,7 @@
6
6
  ここで言及されているのは、JNAのドキュメントにも何度か登場する[JNAerator](https://github.com/nativelibs4java/JNAerator)というユーティリティです。
7
7
  このユーティリティのコマンドラインオプションに[BridJ](https://github.com/nativelibs4java/BridJ)を指定してみては、ということですね。(参考: [JNAratorのコマンドラインオプション](https://code.google.com/p/jnaerator/wiki/CommandLineOptionsAndEnvironmentVariables#Options))
8
8
 
9
- BridJには[`VC9Demangler`](https://github.com/nativelibs4java/BridJ/blob/master/src/main/java/org/bridj/demangling/VC9Demangler.java)なんていうクラスも有りますので、何かやってくれそうな雰囲気ではあります。
9
+ BridJには[`VC9Demangler`](https://github.com/nativelibs4java/BridJ/blob/master/src/main/java/org/bridj/demangling/VC9Demangler.java)なんていうクラスも有りますので、何かやってくれそうな雰囲気ではあります。(追記: [C++ support in BridJ](https://code.google.com/p/bridj/wiki/CPlusPlus)というページが有りました。)
10
10
 
11
11
  ただし、仮にうまく行ったとして、自動生成されたファイルはVC++のDLL専用のものになるはずですので、ポータビリティが損なわれることには変わりないですね(VC用とそれ以外用の2種類自動生成すればいいだけですが(理想的には))。
12
12
 

4

質問意図が想定と異なっている可能性について言及

2015/12/11 06:40

投稿

退会済みユーザー
answer CHANGED
@@ -21,3 +21,8 @@
21
21
 
22
22
  ここで作成するDLLのソースコードは、頑張ればポータビリティを保てるかもしれません。
23
23
 
24
+ ---
25
+
26
+ 質問文を読みなおしましたところ、手間を掛けずにJavaで特定のライブラリを使用したいだけなのかな、とも思いました。
27
+
28
+ もしそうであるなら、そのライブラリの名称を明記して、このライブラリをJavaで使いたいのだがどうすれば?という質問にした方が明確な回答が得られるかと考えます。

3

typo

2015/12/11 06:33

投稿

退会済みユーザー
answer CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  JNAratorの使い方自体は、検索すると日本語の解説も見つかるかと思います(古いものはオプション等が違いますので注意は必要です)。
14
14
 
15
- (追記: [`FunctionMapper`](http://java-native-access.github.io/jna/4.2.1/com/sun/jna/FunctionMapper.html)を独自実装するすることで、BriJ無しでも実現できそうです。ただし関数名とマングリングされた名前を手動で実装することになると思います。)
15
+ (追記: [`FunctionMapper`](http://java-native-access.github.io/jna/4.2.1/com/sun/jna/FunctionMapper.html)を独自実装するすることで、BridJ無しでも実現できそうです。ただし関数名とマングリングされた名前を手動で実装することになると思います。)
16
16
 
17
17
 
18
18
  ----

2

FunctionMapperについて追記

2015/12/11 06:23

投稿

退会済みユーザー
answer CHANGED
@@ -12,8 +12,12 @@
12
12
 
13
13
  JNAratorの使い方自体は、検索すると日本語の解説も見つかるかと思います(古いものはオプション等が違いますので注意は必要です)。
14
14
 
15
+ (追記: [`FunctionMapper`](http://java-native-access.github.io/jna/4.2.1/com/sun/jna/FunctionMapper.html)を独自実装するすることで、BriJ無しでも実現できそうです。ただし関数名とマングリングされた名前を手動で実装することになると思います。)
16
+
17
+
15
18
  ----
16
19
 
17
20
  どうしても今の形のDLLをそのまま使用したいのであれば、そのDLLを呼び出すラッパーDLLを(JNIなどで)作成し、Javaからはそれを呼ぶ、という手段も考えられます。
18
21
 
19
- ここで作成するDLLのソースコードは、頑張ればポータビリティを保てるかもしれません。
22
+ ここで作成するDLLのソースコードは、頑張ればポータビリティを保てるかもしれません。
23
+

1

URL修正

2015/12/11 06:22

投稿

退会済みユーザー
answer CHANGED
@@ -4,7 +4,7 @@
4
4
  - [JNAerated library does not work when the original library has namespaces #515](https://github.com/nativelibs4java/nativelibs4java/issues/515)
5
5
 
6
6
  ここで言及されているのは、JNAのドキュメントにも何度か登場する[JNAerator](https://github.com/nativelibs4java/JNAerator)というユーティリティです。
7
- このユーティリティのコマンドラインオプションに[BridJ](https://github.com/nativelibs4java/BridJ)を指定してみては、ということですね。(参考: [JNAratorのコマンドラインオプション](https://code.google.com/p/jnaerator/wiki/CommandLineOptionsAndEnvironmentVariables))
7
+ このユーティリティのコマンドラインオプションに[BridJ](https://github.com/nativelibs4java/BridJ)を指定してみては、ということですね。(参考: [JNAratorのコマンドラインオプション](https://code.google.com/p/jnaerator/wiki/CommandLineOptionsAndEnvironmentVariables#Options))
8
8
 
9
9
  BridJには[`VC9Demangler`](https://github.com/nativelibs4java/BridJ/blob/master/src/main/java/org/bridj/demangling/VC9Demangler.java)なんていうクラスも有りますので、何かやってくれそうな雰囲気ではあります。
10
10