0

私は VC 6.0 を使用しています。コードのコンパイル中に、「エラー C2995: 'getVector': テンプレート関数は既に定義されています」というエラーが表示されます。

プロジェクトの [設定] -> [C++] タブに WIN32COMMON の値を含め、カテゴリ コンボ ボックスにプリプロセッサとして、プリプロセッサ定義テキスト ボックスに _WIN32COMMON として、追加インクルード ライブラリ テキスト ボックスに完全なパスを「E:\app\user」として含めました。 \product\11.1.0\db_1\OCI\include". このインクルード フォルダには、「occi.h」などのすべてのヘッダー ファイルが存在します。

次のように明示的にコードでWIN32COMMONを定義してみました

#include<iostream>
#define WIN32COMMON
#include <occi.h>
using namespace oracle::occi;
using namespace std; 

しかし、その後、「DbManager undeclared identifier」という102個のエラーが発生し始めました。

また、プロジェクト設定->リンクタブ->カテゴリコンボボックスに追加ライブラリを含めようとしましたが、入力を選択し、追加ライブラリパスで.libファイルの完全なパスを「E:\app\user\」として指定しましたproduct\11.1.0\db_1\OCI\lib\MSVC\vc8" しかし、それも機能しませんでした。誰かが私を案内してくれませんか.どこが欠けているか、私のコードで何か他のものを定義する必要があります.

4

1 に答える 1

0

MSVC++ 6.0 は、関数テンプレートの部分的な順序付けをサポートしていません。コード内でに置き換えgetVector()てみてください。getVectorOfRefs()

オラクルはgetVectorOfRefs()、MSVC6 などの古い Microsoft コンパイラをサポートするために OCCI に追加し、代わりにそれを使用することを推奨していますgetVector()

于 2012-07-03T19:47:47.650 に答える