Main Content

Visual C++ プログラムでの COM オブジェクトの呼び出し

メモ

COM オブジェクトをコンパイルおよび使用するには、Microsoft® コンパイラを選択する必要があります。

作成した COM オブジェクトを以下のように使用します。

  1. 以下のコードを使用して、matlab_com_example.cpp という名前のファイルで Visual C++® プログラムを作成します。

    #include <iostream>
    using namespace std;
    
    #include "mycomponent\src\mycomponent_idl.h" 
    #include "mycomponent\src\mycomponent_idl_i.c"
    
    int main() {     
    // Initialize argument variables     
                 VARIANT x, y, out1;
    //Initialize the COM library     
                 HRESULT hr = CoInitialize(NULL);   
    //Create an instance of the COM object you created    
                 Imycomponentclass *pImycomponentclass;     
                 hr=CoCreateInstance
                   (CLSID_mycomponentclass, NULL, CLSCTX_INPROC_SERVER, 
                    IID_Imycomponentclass,(void **)&pImycomponentclass);
    // Set the input arguments to the COM method 
                 x.vt=VT_R8; 
                 y.vt=VT_R8;     
                 x.dblVal=7.3;
                 y.dblVal=1946.0;      
    // Access the method with arguments and receive the output out1 
                 hr=(pImycomponentclass -> adddoubles(1,&out1,x,y)); 
    // Print the output     
                 cout << "The input values were " << x.dblVal << " and "
                      << y.dblVal << ".\n";
                 cout << "The output of feeding the inputs into the adddoubles method is " 
                      << out1.dblVal << ".\n";      
    // Uninitialize COM     
                 CoUninitialize();     
                 return 0;
    }    
  2. MATLAB® コマンド ウィンドウで、以下のようにプログラムをコンパイルします。

    mbuild matlab_com_example.cpp

実行可能ファイルを実行すると、このプログラムでは 2 つの数値とその和が表示されます。これは、COM オブジェクトの adddoubles として返されます。