私はRoguewaveライブラリを使ってC++からSybaseデータベースに接続しています。RWDBManager :: databaseに共有ライブラリ名が必要なのはなぜですか?
RWDBManager::database("accessLib", "", "", "", "", "XA=lrm_name");
http://www2.roguewave.com/support/docs/sourcepro/edition8/html/dbxaug/5-3.htmlが
All arguments are of type RWCString. Note that establishing an XA connection to the Sybase CT database requires only two of the six database() arguments, as described here:
accessLib
The argument for the first parameter is the same as that which you provide for the non-XA connection.
For static libraries, supply the string "SYBASE_CT".
For shared libraries, supply the name of your shared access library, for example "libctl420d.so".
私は理解していないと言う:私は、データベース・オブジェクトは次のように構成されていることが理解コードで
、私は見慣れています、我々は、使用しなければならないときそのライブラリのヘッダーを含み、このライブラリのクラス/関数を使用し、プロジェクトをコンパイルする際に、このライブラリをLDLIBRARIESリストで使用します。ここの関数データベースにライブラリのNAMEが必要なのはなぜですか? #includeアプローチに対するこのアプローチの利点は何ですか?
標準的な技術ですか?通常、これはどこで使用されていますか? 私は共有ライブラリを使用したプロジェクトで作業しています。したがって、リンクは静的に行われませんでしたが、私はそのようなことに遭遇しませんでした。
おかげで、
Roguewaveデータベースのドキュメントに従って、dlopenを使用してこの共有ライブラリを動的にロードしています。私の次の質問は、Roguewaveがこのデザインを選んだ理由です。彼らは**この共有ライブラリを**動的にリンクすることができますが**ダイナミックにロード**することはできません。 – xyz
あなたの質問を編集してください、それはそうです:) – neuro