はじめまして、超初心者の”たか”といいます。
VBの以下のサンプルコードをc++のコードに置き換えしたいのですが、
どうすればいいかまったく検討がつきません。
ご協力お願いします。
Private WaveLogger As Object
' WAVELOGGER生成する
Set WaveLogger = CreateObject(WaveLoggerPro2.Application)
WaveLogger.Initialize
WaveLogger.Visible = True
CreateObjectはVCで書く場合、大抵COMを使うということになります。
dllやtlbをインポートしたりして使います。
> WaveLoggerPro2.Application
が何者かわからないので、具体的には何もアドバイスできません。
早速の返事ありがとうございます。
使用する機器は、
メーカー : キーエンス
型式 : NR-600
です。
カタログでは、オートメーヨンサーバー機能と書いてあって
サンプルソースでも.dllはついていません。
ごめん。情報が少なすぎてワカリマセン。
# WaveLoggerPro2.ApplicationでもWaveLoggerProでも検索が引っかからないので
# 何もできないです。
やっぱりVBでつくったほうが無難そうですけど。
(CreateObectを使っているところは簡単に他の言語におきかえれない)
ラッパークラスを自動生成できない場合、
ちょっと面倒ですが、不可能ではないです。
CLSID clsid;
CLSIDFromProgID(LWaveLoggerPro2.Application, &clsid);
IDispatch* disp;
CoCreateInstance(clsid,..., (void**)&disp);
DISPID dispid;
LPOLESTR name = メソッド名;
disp->GetIDsOfNames(IID_NULL, &name, 1,..., &dispid);
DISPPARAMS params;
..params に必要な情報をセットする
disp->Invoke(dispid, IID_NULL, ...);
disp->Release();
> ちょっと面倒ですが、不可能ではないです。
プロパティ1つ設定するのに何行かかせるんだてな具合に面倒ですね。
> カタログでは
には、C++で扱う場合の説明は書いていないのでしょうか?
最悪問い合わせるのも手だと思いますよ。
というか、提供メーカーに問い合わせるべきと思いますけれど。
少なくともお金を払って購入したのであれば権利はあると思いますが。
(サポート料が必要という場合はあるかもですが)
基本的には自己解決が出来ないならメーカーに相談。
メーカーがサポート料を要求する場合は、出せるかどうかで判断。
出せなければ、掲示板で訊いて見て運良く同じ物を使った事があれば、
レスがつくかもってくらいでは。
提供メーカーがC++からのインターフェイスを提供しませんと
言っている場合は、素直にVBで作るべきだと思います。
多分、C++で作ったらサポートしてくれないでしょうし。
多分、動作保障対象外になるのでは。
C++でやるなら自己責任という事になるので
お客さんに提供するようなソフトなら後々色々と面倒な事に
なるかもしれないのでお勧めは出来ないですね。
NR-600の添付ソフトをインストールすると、
VB、VC、VBAのサンプルコードも、コピーされているはずです。
(SAMPLEのフォルダーです)
それを参考にすれば、簡単に組めると思われます。
ちなみに、私はVBで組んで使用しています。
余談:最初の頃は、私もメーカーに問い合わせていましたが
そもそも、計測器メーカーなので、満足の行く回答が
中々帰って来ません、サンプルコードを元に理解していくのが
近道かと思います。(私見ですが)
>計測器メーカーなので、満足の行く回答が中々帰って来ません
作っといて答えられないんですか…
もしかすると質問のしかたにもよるのではないでしょうか
>作っといて答えられないんですか…
>もしかすると質問のしかたにもよるのではないでしょうか
意外と多いですよ。
特にキーエンスは自社でアプリケーションを作っているみたい。
盛んに宣伝している。