タイトル | : C++におけるJVGetsのメモリ解放方法 | |
---|---|---|
— | — | |
記事No | : 7538 | |
投稿日 | : 2025/04/16(Wed) 07:57 | |
投稿者 | : imetk |
お世話になっております。
「JRA-VAN Data Lab.開発ガイド(イベントC++)」 を参考に C++で開発をしてい
ます。
JVOpenで取得したデータを読み込む方法としてJVReadとJVGetsがありますが、J
VReadを使用した方法では問題なく動作できています。
パフォーマンス向上のため、JVGetsを使用した方法に切り替えたいのですが、
インターフェース仕様書によるとアプリ側でメモリ解放が必要とのこと。実際に
実行してみるとメモリリークが発生し、メモリ使用量が1,500MB程度になったと
ころで例外が発生してしまいます。
JVGetsでデータを取得する毎に、buffのメモリを開放したいのですが、全く方
法がわからず困っております。
こちらにソースコードを貼ろうと思いましたが、投稿制限事由に引っかかって
しまい、貼れませんでした。
サンプルプログラム 「sample1_VC2019」 を確認しましたが、こちらは作成日
が2003年のようで、現在と書き方がだいぶ変わっており参考になりませんでした
。
どなたかお知恵をお貸しいただけないでしょうか。|
タイトル | : Re: C++におけるJVGetsのメモリ解放方法 | |
---|---|---|
— | — | |
記事No | : 7540 | |
投稿日 | : 2025/04/18(Fri) 06:14 | |
投稿者 | : サメの餌 |
imetkさん、おはようございます。
ちょっとC++の話ではないので参考になるのかも分かりません。
自分自身もC++は使ってないし、C#とC++が別物だとは思ってます。
JVGetsでデータを取得する毎に、buffのメモリを開放したいのですが、
実はこちらの掲示板の過去ログP0006の2ページ目辺りのNo.6853にたかひろさん
が「C#でのメモリ解放」ってスレがあるんですが、そこを読まれるとヒントにな
るかもです。自分はC#なのでこのスレのおかげで無事に現在に至ってます。|
タイトル | : Re: C++におけるJVGetsのメモリ解放方法 | |
---|---|---|
— | — | |
記事No | : 7545 | |
投稿日 | : 2025/04/23(Wed) 09:49 | |
投稿者 | : JRA-VANソフトサポート |
JRA-VANソフトサポート 鷹森です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。
ご認識頂いている通り、JVGetsを使用する際にはアプリケーション側でメモリ
解放が必要です。
サンプルプログラムでメモリ解放を実施している箇所は以下です。
・sample1_VC2019\sample1Dlg2.cpp 305~307行目
VariantClear(&varBuff);
VariantClear(data);
SafeArrayDestroy(psa);
上記関数を参考にimetk様のソースコードで同様にメモリ解放していただくよう
お願いいたします。
以上、よろしくお願いいたします。|