JavaでCOMの引数に配列を指定する
2014-11-23


この記事は、10月22日の「Perl,Ruby,PythonでCOMの引数に配列を指定する」の続きです。(我ながら執念深いなあ〓〓〓。)

今回は、JACOB(Java COM Bridge)を利用して、Javaで試してみました。

10,11,14,15行目でSafeArrayに適当な領域を確保した後ダミーの文字を設定していますが、こうしないと「Can't get code pointer error」と怒られてしまいます。
実行結果の通り、現在のバージョンでは配列が逆さまの順に返ってきます。銘柄コードが入る筈の配列に銘柄名、銘柄名が入る筈の配列に銘柄コードが入っています。
しかし、それを前提にコードを書けば良いのだから、私としては別に困るわけではありません。そのうち、開発チームが直してくれるでしょう。

jdk1.8.0_25と、jacob-1.18-M2で確認しました。
 1 import com.jacob.activeX.ActiveXComponent;
 2 import com.jacob.com.Dispatch;
 3 import com.jacob.com.SafeArray;
 4 import com.jacob.com.Variant;
 5 
 6 public class Win32Test {
 7 
 8         public static void main(String[] args) {
 9                 ActiveXComponent am_names = new ActiveXComponent("ActiveMarket.Names.1");
10                 SafeArray codes = new SafeArray(Variant.VariantString, 4);
11                 codes.setString(0, "");
12                 Variant vn1 = new Variant(Variant.VariantArray, true);
13                 vn1.putSafeArrayRef(codes);

続きを読む

[Java]

コメント(全0件)


記事を書く
powered by ASAHIネット