| JV-Link 質問箱 |
| タイトル | : 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様のソースコードで同様にメモリ解放していただくよう お願いいたします。
以上、よろしくお願いいたします。 |
|
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|