VS2022でのJVLimk Class の登録について

タイトル VS2022でのJVLimk Class の登録について
記事No 7277
投稿日 : 2023/08/09(Wed) 15:07
投稿者 どんぐり

Visual Studio 2019版では
JVlink Classが、comコンポーネントとして、登録できるのですが
Visual Studio 2022版では
Comコンポーネントに、JVLink Classは出てきません。
よって、FormにJVLinkコンポーネントが貼り付けられません。

2022版ではどのようにすればよいのでしょうか?|

タイトル Re: VS2022でのJVLimk Class の登録について
記事No 7281
投稿日 : 2023/08/09(Wed) 16:38
投稿者 サメの餌

どんぐりさん、こんにちは。

Visual Studio 2022から64bit化されてJV-Linkが32bitって事でそんな感じです
。貼り付けは断念して

・[プロジェクト]-[COM参照の追加(C)…]で「JRA-VAN Data Lab 1.1.8タイプ
ライブラリ」にチェック付けてOKする。

・Visual Studioの右側に表示されているソリューションエクスプローラーで「
依存関係」を展開するとCOMの下にInterop.JVDTLabLibがあるのでそのプロパテ
ィ「相互運用型の埋め込み」が「はい」になっているので「いいえ」にする。

・クラスとして定義
Public clsJVLink As JVDTLabLib.JVLinkClass = New JVDTLabLib.JVLinkClass
()

・ターゲットをAnyPCではなくx86にする

こんな感じで行ける筈です。Visual Basicで書きましたが、C#だと
JVDTLabLib.JVLink InterfaceJVLink = new JVDTLabLib.JVLink();
って感じですかね。

参考になれば幸いです。|

タイトル Re^2: VS2022でのJVLimk Class の登録について
記事No 7284
投稿日 : 2023/08/09(Wed) 19:03
投稿者 どんぐり

ありがとうございます。
早速やってみたいと思います。|

タイトル Re^3: VS2022でのJVLimk Class の登録について
記事No 7286
投稿日 : 2023/08/09(Wed) 20:59
投稿者 どんぐり

サメの餌 様

VS2019からの移植(C#)なのですが、
クラスの定義がうまくゆきません。

ちなみにVS2019で張り付けていた名前は、
JVLink1 でした。

構文をご指導いただければ幸いです。|

タイトル Re^4: VS2022でのJVLimk Class の登録について
記事No 7287
投稿日 : 2023/08/09(Wed) 21:47
投稿者 サメの餌

どんぐりさん、こんばんは。

ごめんなさい、ちと引用する行を間違えてました。

public static JVDTLabLib.JVLinkClass clsJVLink = new JVDTLabLib.JVLinkClass();

って引用するつもりだったのに、本当に申し訳ございません。もし、使ってた変数名がJVLink1でしたら

public static JVDTLabLib.JVLinkClass JVLink1= new JVDTLabLib.JVLinkClass();

な感じかと。で、例えば

int iReturnCode = JVLink1.JVInit(SID);

てな感じにしてするんだと。

非常にシンプルにでも無駄な時間を費やす事になってと思うので本当に申し訳ございません。上手く行く事を願ってます。何かあれば自分に出来る範囲でお答えします。|

タイトル Re^5: VS2022でのJVLimk Class の登録について
記事No 7288
投稿日 : 2023/08/09(Wed) 21:55
投稿者 サメの餌

言葉が微妙に変ですね。そこはご容赦下さい。

public staticに宣言してるのは、他のフォームでも使う可能性があるからで、
メインフォームってか起動されるフォームで一度JVInitしていれば他のフォーム
でデータ取得する時にもそのフォームを指定しながら使えるからです。|

タイトル Re^6: VS2022でのJVLimk Class の登録について
記事No 7289
投稿日 : 2023/08/09(Wed) 21:59
投稿者 サメの餌

更に言い訳っぽいですが、最初に書いた行はJV-Linkでイベント監視して諸々す
る場合の定義で使います

InterfaceJVLink.JVEvtPay += new JVDTLabLib._IJVLinkEvents_JVEvtPayEvent
Handler(this.InterfaceJVLink_JVEvtPay);

的に書いて払戻確定時のイベント対処するとかなんとかだったかと。|

タイトル Re^5: VS2022でのJVLimk Class の登録について
記事No 7290
投稿日 : 2023/08/09(Wed) 22:58
投稿者 どんぐり

サメの餌 様

ありがとうございます。
先ほどの1行を冒頭に追加いたしました。
debugで ReturnCode = axJVLink1.JVInit(SID);
でバンドルされていない例外 ということで止まりますね。
2022は厄介ですね。|

タイトル Re^6: VS2022でのJVLimk Class の登録について
記事No 7291
投稿日 : 2023/08/09(Wed) 23:29
投稿者 サメの餌

どんぐりさん、こんばんは。

debugで実行時のツールバーの"Debug"の右、緑の:play_button:の左に
ある元々"Any CPU"となっている所が"x86"になっている事
と、多分そこだけで良い気もするんですが、これ、最初に書いてたのでやってた
とすると…以前はプロジェクトのプロパティにもこのx86を指定する場所があっ
たと思ったんですが、今確認すると見つけられないorz

Visual Studio Community 2022をもう1年以上、そろそろ2年になりそうですが
、まあ、今はなかなかなじんで来てます。問題なく動かせているので何かが…
それが特定出来れば良いのですが|

タイトル Re^7: VS2022でのJVLimk Class の登録について
記事No 7292
投稿日 : 2023/08/09(Wed) 23:51
投稿者 どんぐり

Class の登録が、うまくないのかもしれません。

VS2020,VS2019は何年も永くやっているのですが、2022は始めたばかりで、手探
りの状態です。

いろいろありがとうございます。ま、VS2019では、完全に動作していますので
、むりに2022することもないのですが、せっかく購入しましたので使いたい
、というとうところです。|

タイトル Re^8: VS2022でのJVLimk Class の登録について
記事No 7293
投稿日 : 2023/08/10(Thu) 04:36
投稿者 どんぐり

サメの餌 様

ついに成功しました。問題だったのは
2019からの移植でしたので、以前に張り付けていたJVLinkが
悪さをしていました。悪さの原因を除いて成功しました。
大変ありがとうございました。
お蔭様で、VS2022に突き進むことができます。
大感謝です。!!|