Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第3章 アプリケーションの開発(C言語) | > 3.10 アプリケーション作成時の注意事項 |
Visual C++でコンパイルを実行する場合は、以下のような手順で表に示すオプションを設定してください。
Visual C++ 5.0または6.0の場合:
[プロジェクト]-[設定]-[C/C++]-[カスタマイズ]
Visual C++ 4.0、4.1または4.2の場合:
[ビルド]-[設定]-[C/C++]-[カスタマイズ]
カテゴリ |
項目 |
設定値 |
---|---|---|
コード生成 |
CPU |
80386を推奨 |
使用するランタイム |
マルチスレッド |
|
最適化 |
|
デフォルトを推奨 |
プリプロセッサ |
プリプロセッサの定義 |
"OM_PC","OM_WIN32_BUILD", |
詳細 |
呼び出し規約 |
_cdecl |
また、[ツール]-[オプション]-[ディレクトリ]の「インクルード」、「ライブラリ」にそれぞれインストールフォルダの下の"INCLUDE"、"LIB"フォルダを登録してください。
登録例)
−インクルードファイル
C:\MSDEV\INCLUDE;C:\MSDEV\MFC\INCLUDE;C:\INTERSTAGE\ODWIN\INCLUDE;
C:\INTERSTAGE\TD\INCLUDE;C:\INTERSTAGE\ots\INCLUDE;
C:\INTERSTAGE\ESWIN\INCLUDE
(Visual C++およびINTERSTAGEを、それぞれC:\MSDEVおよびC:\INTERSTAGEにインストールした場合)
−ライブラリファイル
C:\MSDEV\LIB;C:\MSDEV\MFC\LIB;C:\INTERSTAGE\ots\LIB;
C:\INTERSTAGE\ODWIN\LIB;C:\INTERSTAGE\EXTP\LIB;C:\INTERSTAGE\TD\LIB;
C:\INTERSTAGE\ESWIN\LIB
(Visual C++およびINTERSTAGEを、それぞれC:\MSDEVおよびC:\INTERSTAGEにインストールした場合)
ODSV.LIBまたはODWIN.LIBを使用して、Visual C++でコンパイルを実行すると、以下のようなエラーメッセージが表示される場合があります。
リンク中...
odsv.lib(ODSV.dll) : error LNK2005: _CORBA_sequence_string_allocはすでにsimple_skel.objで定義されています。
odsv.lib(ODSV.dll) : warning LNK4006: _CORBA_sequence_string_allocはsimple_skel.objで定義されています。2つ目以降の定義は無視されます。
このような場合には、Visual C++で以下のような設定を行い、再度コンパイルを実行してください。
Visual C++ 5.0または6.0の場合:
[プロジェクト]-[設定]-[リンク]-[カスタマイズ]-“ターゲットを強制的に出力”をONに設定します。
Visual C++ 4.0、4.1または4.2の場合:
[ビルド]-[設定]-[リンク]-[カスタマイズ]-“ターゲットを強制的に出力”をONに設定します。
Visual C++で、IDLコンパイラから生成されたファイルを使用してDLLを作成する方法について説明します。
(a) IDLコンパイル
DLL作成用のソースを生成する場合は、IDLコンパイル時に-dyオプションを指定してIDLコンパイルを行ってください。
(b) プリプロセッサの定義
DLL作成時およびDLLリンク時に、Visual C++で以下のような手順で表に示すプリプロセッサの定義を設定してください。
Visual C++ 5.0または6.0の場合:
[プロジェクト]-[設定]-[C/C++]-[プリプロセッサ]-[プリプロセッサの定義]
Visual C++ 4.0、4.1または4.2の場合:
[ビルド]-[設定]-[C/C++]-[プリプロセッサ]-[プリプロセッサの定義]
言語 |
DLL作成/リンク |
プリプロセッサ定義 |
---|---|---|
C |
DLL作成時 |
"OM_USRDLL_MAKE" |
C |
DLLリンク時 |
"OM_USRDLL_LINK" |
C++ |
スケルトンDLL作成時 (注1) |
"OM_SKDLL_MAKE" |
C++ |
スケルトンDLLリンク時 |
"OM_SKDLL_LINK" |
C++ |
スタブDLL作成時 (注2) |
"OM_STDLL_MAKE" |
C++ |
スタブDLLリンク時 |
"OM_STDLL_LINK" |
注1) スケルトンファイルおよびメソッド実装部からDLLを作成する場合
注2) スタブファイルからDLLを作成する場合
(c) 注意事項
上記のようにプロジェクトの設定でプリプロセッサを定義する方法の他に、IDLコンパイラ生成ヘッダファイル(*.h)をインクルードするソースファイルで、#define文を使用して指定することもできます。
複数のIDLファイルから生成されたヘッダファイルを使用してDLLのリンクと作成を両方行う場合の例を以下に示します。
#define OM_USRDLL_LINK #include "a.h" // IDLコンパイラ生成ヘッダ #undef OM_USRDLL_LINK #define OM_USRDLL_MAKE #include "b.h" // IDLコンパイラ生成ヘッダ #undef OM_USRDLL_MAKE // 以下ソースコード ...
目次
索引
![]() ![]() |