我正在使用Roguewave庫從C++連接到Sybase數據庫。據我所知,數據庫對象被構造爲:爲什麼RWDBManager ::數據庫需要共享庫名稱?
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列表中使用這個庫。爲什麼這裏的函數庫需要庫的名字?這種方法與#include方法相比有什麼優勢。
它是一些標準技術?通常在哪裏使用? 我曾參與過使用共享庫的項目,所以沒有靜態地完成鏈接,但我沒有遇到過這種情況。
感謝,
他們正根據Roguewave數據庫文檔使用dlopen動態加載此共享庫。我的下一個問題是爲什麼Roguewave選擇了這種設計。他們可能只是**動態鏈接**這個共享庫,但不能**動態加載**這一點。 – xyz 2011-02-07 14:41:37
編輯你的問題,這是SO的方式:) – neuro 2011-02-07 16:15:19