JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Link 質問箱

一括表示 リストに戻る
タイトルvc2019でのJVopenの「種類が一致してません」について
記事No6997
投稿日: 2022/10/04(Tue) 18:02
投稿者ミミョウ
4年分の掲示板がないとのことなで、すでに解決方法があるのかもしれません
が見つけられませんでしたので、質問させていただきました。
MFCでの開発ですがVC2019でJVOpenをすると、エラー番号を返さずに
「種類が一致しません」とメッセージボックスが出ます。
開発環境によってActiveXコントロールの挙動が変わるものなのでしょうか。何
か設定を変える必要があるのでしょうか?
VC2015で作成すれば特に問題はありません。
もう一点、質問ではありませんが,サンプルプログラムの出走別着度数処理用
サンプルc++とあるところダウンロードがVBになっています。テストができま
せん。
以上よろしくお願いいたします。

タイトルRe: vc2019でのJVopenの「種類が一致してません」について
記事No6998
投稿日: 2022/10/07(Fri) 16:01
投稿者JRA-VANソフトサポート
JRA-VANソフトサポートの安本です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

> MFCでの開発ですがVC2019でJVOpenをすると、エラー番号を返さずに
> 「種類が一致しません」とメッセージボックスが出ます。
> 開発環境によってActiveXコントロールの挙動が変わるものなのでしょう
か。何
> か設定を変える必要があるのでしょうか?
> VC2015で作成すれば特に問題はありません。

お手数ですが、下記ページから「サンプルプログラムVC2019版」をご確認いただけますでしょうか。
同じくVC2019で作成したサンプルプログラムであるため、
JVOpen使い方と開発環境プロパティの差分をご確認いただければと存じます。

●ソフト開発サポート
https://jra-van.jp/dlb/sdv/sdk.html
(JRA-VAN SDK 本体(ダウンロード用))

> もう一点、質問ではありませんが,サンプルプログラムの出走別着度数処理用
> サンプルc++とあるところダウンロードがVBになっています。テストができま
> せん。

上記につきまして、確認中となります。
確認に進展がありましたら、こちらのスレッドでお伝えいたします。

何卒よろしくお願いいたします

タイトルRe^2: vc2019でのJVopenの「種類が一致してません」について
記事No6999
投稿日: 2022/10/07(Fri) 20:57
投稿者ミミョウ
1点目の件確認してみます。2点目の件引き続きよろしくお願いいたします。

タイトルRe^3: vc2019でのJVopenの「種類が一致してません」について
記事No7001
投稿日: 2022/10/08(Sat) 07:39
投稿者ミミョウ
1点目の件確認してみました。まず、JVOpenの使い方ですがJVInitをコールして
からコールしています。また、各仮引数の値、InvokeHelperに渡る直前の値も同
じです。環境設定も確認しましたが、サンプルはプリコンパイルへ済ヘッダーフ
ァイルがstdafx.hでこちらはpch.hとなっているぐらいでした。(問題になりそ
うな箇所としては)エラーメッセージはCOM側からものなので、COMとの相性が悪
いのかもしれません。CoCreateInstanceから直接COMのオブジェクトのインスタ
ンスを作成し、インターフェイスにアタッチしてJVOpenし確認してみようと思い
ますが、サポートの方も実際にVC2019でACtiveXコントロールを貼り付け変数を
追加して動作を確認してみていただけるでしょうか。なお、直接COMを操作する
のはかまわないのですが、イベントの補足が困難なので、できたらACtiveXコン
トロールの貼り付けで対処したいと思っております。よろしくお願いいたします

タイトルRe^3: vc2019でのJVopenの「種類が一致してません」について
記事No7002
投稿日: 2022/10/08(Sat) 07:41
投稿者ミミョウ
1点目の件確認してみました。まず、JVOpenの使い方ですがJVInitをコールして
からコールしています。また、各実引数、仮引数の値、IvokeHelperに渡る直前
の値も同じです。環境設定も確認しましたが、サンプルはプリコンパイルへ済ヘ
ッダーファイルがstdafx.hでこちらはpch.hとなっているぐらいでした。(問題
になりそうな箇所としては)エラーメッセージはCOM側からものなので、COMとの
相性が悪いのかもしれません。CoCreateInstanceから直接COMのオブジェクトの
インスタンスを作成し、インターフェイスにアタッチしてJVOpenし確認してみよ
うと思いますが、サポートの方も実際にVC2019でACtiveXコントロールを貼り付
け変数を追加して動作を確認してみていただけるでしょうか。なお、直接COMを
操作するのはかまわないのですが、イベントの補足が困難なので、できたらACti
veXコントロールの貼り付けで対処したいと思っております。よろしくお願いい
たします。

タイトルRe^4: vc2019でのJVopenの「種類が一致してません」について
記事No7006
投稿日: 2022/10/14(Fri) 11:13
投稿者JRA-VANソフトサポート
JRA-VANソフトサポートの安本です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。


> サポートの方も実際にVC2019でACtiveXコントロールを貼り付
> け変数を追加して動作を確認してみていただけるでしょうか。

VC2019のサンプルプログラムを利用し、
ActiveXコントロールの貼り付け、および、変数追加を行って動作確認をしまし
たが、問題なく動作いたしました。

VC2015では動作していたとのことでしたので、VC2019との互換性の問題かと考
えられます。

> もう一点、質問ではありませんが,サンプルプログラムの出走別着度数処
> 理用サンプルc++とあるところダウンロードがVBになっています。
> テストができません。

出走別着度数処理用サンプルにつきましては、Microsoft Visual Basic 2019版
のみ提供しております。
ページ内の記載に誤りがありご迷惑をお掛けしましたこと、お詫び申し上げま
す。
Visual C++ 2019版の提供につきましては、要望として今後のサービス改善にて
検討させていただきます。

何卒よろしくお願いいたします。

タイトルRe^5: vc2019でのJVopenの「種類が一致してません」について
記事No7010
投稿日: 2022/10/17(Mon) 02:38
投稿者ミミョウ
ご回答ありがとうございます。

> VC2019のサンプルプログラムを利用し、
> ActiveXコントロールの貼り付け、および、変数追加を行って動作確認を
しまし
> たが、問題なく動作いたしました。
>
> VC2015では動作していたとのことでしたので、VC2019との互換性の問題か
と考
> えられます。

とのことでしたので互換性の問題を検討してみました。

サンプルとVC2019で作成された
// Microsoft Visual C++ で作成された自動生成 IDispatch ラッパー クラス
のJVOpenの関数内のVARIANTのparmsの型が異なっていることがわかりました。

サンプル:static BYTE parms[]=VTS_BSTR VTS_BSTR VTS_I4 VTS_PI4 VTS_PI4 V
TS_PBSTR ;
vc2019 :static BYTE parms[] = VTS_BSTR VTS_BSTR VTS_I4 VTS_UNKNOWN VTS
_UNKNOWN VTS_UNKNOWN;

自動生成ではなぜかJVOpenのポンター型引数がすべてVTS_UNKNOWN(IUnknown*
)として展開されるに対して、VC2017以前ではポンターの元の型で展開されてい
ます。

比較的新しいVCではうまくラッパー クラスが生成できないという事例があるよ
うです。
この点、初めからプログラムを作成する人のためにアナウンスがあったほうが
良いと思われます。
(私はかなりハマりました。)
解決策としては、サンプルのjvlink.hをそのまま差し替えるのが手っ取り早い
と思います。

ウィンドウを閉じる