青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

C++ API訪問Berkeley DB XML數據庫問題

Berkeley DB XML是一個開源的嵌入式的原生XMLnative-XML)數據庫。它對外提供多種訪問接口,如C++JavaPerl、PythonPHP、Tcl、Ruby等。在使用C++接口的過程中并非一帆風順,如有一處設置不當就可能導致失敗。這里筆者將整個過程中遇到的問題寫了出來,希望對后面的使用者有所幫助。

在自己建立工程操作Berkeley DB XML數據庫時需要引用到該數據庫的很多DLL,這個跟訪問SQL Server等數據庫是不一樣的,因為 Berkeley DB XML是嵌入式數據庫,它跟應用程序運行在相同的地址空間,處于同一個進程。

這里以Visual Studio.net 2003C++環境為例。

1.創建工程。先新建一個空白的解決方案Solution1,然后在該解決方案中新建一個Win32控制臺項目Test,工程會自動生成很多文件。保留Test.cpp,其他文件全部刪除。

2.添加Berkeley DB XML頭文件。頭文件的位于C:\Program Files\Oracle\Berkeley DB XML 2.3.10\include(默認安裝路徑),將下面的所有文件拷貝至Test目錄下。

3.添加libDLL文件。lib位于C:\Program Files\Oracle\Berkeley DB XML 2.3.10\lib目錄下,共四個libdbxml23.liblibdb45.libxerces-c_2.libxqilla10.lib。DLL位于C:\Program Files\Oracle\Berkeley DB XML 2.3.10\bin目錄下,共有四個分別為libdbxml23.dll、libdb45.dllxerces-c_2_7.dllxqilla10.dll。注意,將lib拷貝到Test目錄下,DLL拷貝到Test/Debug(要先生成一下項目才會產生這樣一個目錄)目錄下。

4.編寫測試代碼

/* file Test.cpp */

#include <dbxml/DbXml.hpp>

 

   using namespace DbXml;

 

   int main(int argc, char **argv)

   {

    // An empty string means an in-memory container, which

    // will not be persisted

    std::string containerName = "";

    std::string content = "<hello>Hello World</hello>";

    std::string docName = "doc";

  

    try {

     // All BDB XML programs require an XmlManager instance

     XmlManager mgr;

     XmlContainer cont = mgr.createContainer(containerName);

   

     // All Container modification operations need XmlUpdateContext

     XmlUpdateContext uc = mgr.createUpdateContext();

     cont.putDocument(docName, content, uc);

   

     // Now, get the document

     XmlDocument doc = cont.getDocument(docName);

     std::string docContent;

     std::string name = doc.getName();

     docContent = doc.getContent(docContent);

   

     // print it

     std::cout << "Document name: " << name << "\nContent: " <<

      docContent << std::endl;

   

     // In C++, resources are released as objects go out

     // of scope.

     } catch (XmlException &xe) {

     std::cout << "XmlException: " << xe.what() << std::endl;

    }

       return 0;

   }

5.設置工程屬性。

打開工程屬性頁,

1)將預編譯頭設置為”不使用預編譯頭”;

2)添加附加包含目錄,例如D:\sourcecode\Solution1\TestTest工程所在目錄)

3)添加附加依賴項。包括libdbxml23.lib libdb45.lib xerces-c_2.lib xqilla10.lib

6.運行。這時你會發現程序崩潰,根本無法運行。

   這時默認是在Debug模式,你將它改為Release模式,嘿,成功了。事實上遠沒有這么簡單,如果到此為止的話,這邊文章也就沒有寫的必要了。

我們編寫程序不可能在Release下整吧,程序是調出來的啊。因此必須搞定Debug模式下的運行問題??赡苣銊偛旁诳截?span lang="EN-US">lib文件時已經發現C:\Program Files\Oracle\Berkeley DB XML 2.3.10\lib下還有另外四個lib文件。與前面提到的四個文件的區別是文件名后面多了一個d,很明顯這是用于調試的。

那么是不是把上面的lib文件替換為這四個文件(libdbxml23d.lib、libdb45d.lib、xerces-c_2D.libxqilla10d.lib)就可以了呢?沒那么簡單!你還需要打開Berkeley DB XML的源代碼工程,然后在Debug模式下生成一邊(編譯Berkeley DB XML源代碼很簡單,這里不多述),這時你就能在C:\Program Files\Oracle\Berkeley DB XML 2.3.10\dbxml\build_windows\Debug下找到這四個調試版的文件(libdbxml23d.dlllibdb45d.dll、xerces-c_2_7D.dll、xqilla10d.dll)

如果說把上面DLL文件替換為這四個DLL就可以了,我也沒有寫這篇文章的必要了。好,不管怎么說先把上面提到的八個文件替換了再說。這時當然要將工程屬性中的附加依賴項改為” libdbxml23d.lib libdb45d.lib xerces-c_2D.lib xqilla10d.lib”。然后開始生成解決方案比運行,你會發現問題依然沒有解決,在Debug模式還是存在程序崩潰的問題。

我一一查看項目配置屬性以及是否有什么DLL沒有加載全還是什么其他之類的原因,最后終于解決。原來代碼生成中有個選項”運行時庫”,系統默認是” 單線程調試(/MLd)”,這里一定要選擇” 多線程調試 DLL (/MDd)”這一項。

 

posted on 2009-08-18 21:37 肥仔 閱讀(916) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久艳片www.17c.com| 一区二区三区亚洲| 亚洲日本成人网| 亚洲精品免费在线观看| 欧美国产亚洲精品久久久8v| 一区二区三区精品视频| 午夜精品久久久久久久久久久久久| 国产一区二区剧情av在线| 亚洲第一页自拍| 国产精品入口66mio| 欧美成人午夜免费视在线看片| 欧美肥婆在线| 久久久久久久一区二区| 欧美日韩一区二区三| 久久久国产一区二区| 欧美精品偷拍| 久久这里只有| 国产精品国产三级国产专区53 | 亚洲精品免费一二三区| 国产一区二区看久久| 一区二区欧美视频| 亚洲成在线观看| 亚洲一区二区三| 亚洲免费大片| 久久噜噜噜精品国产亚洲综合| 亚洲伊人第一页| 欧美久久婷婷综合色| 久久一区二区三区国产精品| 欧美日韩国产综合在线| 欧美激情久久久久久| 国产一区二区在线观看免费| 亚洲午夜黄色| 亚洲视频一区| 欧美日韩黄色大片| 欧美国产日韩一区二区在线观看 | 欧美77777| 亚洲深夜福利| 你懂的视频欧美| 国产精品自在线| 在线一区二区三区四区五区| 亚洲精品人人| 久久夜色精品国产亚洲aⅴ| 久久精品综合网| 国产欧美日韩在线视频| 亚洲视频一区在线| 在线视频免费在线观看一区二区| 欧美大片18| 亚洲高清在线精品| 最近中文字幕日韩精品| 老鸭窝91久久精品色噜噜导演| 老司机一区二区| 在线观看av一区| 久久久水蜜桃av免费网站| 久久人人超碰| 在线成人www免费观看视频| 久久久久久网| 欧美激情精品久久久久久蜜臀 | 久久久国产91| 免费成人网www| 在线观看亚洲精品视频| 裸体素人女欧美日韩| 欧美肥婆在线| 夜夜嗨一区二区| 国产精品久久久久秋霞鲁丝| 亚洲一区3d动漫同人无遮挡| 久久国产精品久久国产精品| 国产在线不卡精品| 久久综合九色综合欧美就去吻 | 国产九区一区在线| 欧美一级精品大片| 两个人的视频www国产精品| 亚洲第一区在线观看| 欧美黄色小视频| 一本色道**综合亚洲精品蜜桃冫| 午夜精品影院在线观看| 狠狠色丁香婷综合久久| 噜噜爱69成人精品| 日韩视频在线播放| 欧美一区二区在线观看| 18成人免费观看视频| 欧美精品激情blacked18| 亚洲美女少妇无套啪啪呻吟| 午夜精品久久久久影视| 尤物精品在线| 欧美人在线视频| 欧美一区二区| 亚洲日本精品国产第一区| 亚洲欧美日本伦理| 伊人久久大香线蕉综合热线| 欧美日本在线| 欧美在线网址| 亚洲人成人99网站| 欧美在线综合视频| 亚洲日本成人在线观看| 国产精品美女www爽爽爽| 欧美专区在线| 99国产精品久久| 久久美女艺术照精彩视频福利播放| 亚洲精品色婷婷福利天堂| 国产精品网站在线观看| 欧美a级片网站| 亚洲欧美资源在线| 亚洲精品视频在线观看免费| 久久久久久噜噜噜久久久精品| 欧美大片国产精品| 亚洲免费在线看| 亚洲国产女人aaa毛片在线| 久久国产精品99国产| av成人免费观看| 韩日精品在线| 国产精品国产三级国产专播精品人| 免费成人黄色av| 欧美伊久线香蕉线新在线| 99精品99| 91久久精品视频| 欧美 亚欧 日韩视频在线| 欧美亚洲日本国产| 一区二区不卡在线视频 午夜欧美不卡'| 国内精品久久久久久 | 麻豆91精品91久久久的内涵| 亚洲欧美国产77777| 日韩午夜中文字幕| 亚洲高清久久网| 好吊日精品视频| 国产女主播一区二区| 欧美日韩免费高清一区色橹橹| 老色批av在线精品| 久久久久久国产精品一区| 欧美亚洲视频| 香蕉尹人综合在线观看| 亚洲一区在线直播| 亚洲小视频在线观看| 亚洲色在线视频| 日韩亚洲欧美综合| 亚洲精品永久免费| 亚洲激情成人| 亚洲国产欧美日韩精品| 亚洲大片精品永久免费| 鲁大师成人一区二区三区| 久久精品夜夜夜夜久久| 午夜天堂精品久久久久| 欧美一区影院| 久久久91精品国产| 久久久人成影片一区二区三区 | 欧美精品一区二区三区视频 | 女人色偷偷aa久久天堂| 久久夜色精品国产亚洲aⅴ| 久久午夜电影| 蜜桃av噜噜一区| 欧美国产一区二区在线观看| 欧美激情中文不卡| 亚洲福利视频一区| 亚洲精品国产精品国产自| 亚洲三级毛片| 亚洲一区中文字幕在线观看| 香蕉尹人综合在线观看| 久久久久久国产精品一区| 美国成人毛片| 欧美日韩第一区日日骚| 国产精品青草久久久久福利99| 国产精品一区二区女厕厕| 国内精品国产成人| 亚洲人成绝费网站色www| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 香蕉久久一区二区不卡无毒影院 | 欧美日韩国产色综合一二三四| 欧美精品导航| 国产精品高清网站| 国产欧美在线观看| **欧美日韩vr在线| 夜夜嗨一区二区| 久久av老司机精品网站导航| 蜜臀a∨国产成人精品| 亚洲卡通欧美制服中文| 亚洲欧美激情视频| 免费中文日韩| 国产精品每日更新| 亚洲黑丝在线| 亚洲一品av免费观看| 久久人体大胆视频| 亚洲麻豆视频| 久久国产精彩视频| 欧美日本在线视频| 国产亚洲激情视频在线| 亚洲美洲欧洲综合国产一区| 欧美在线视频一区| 亚洲激情在线观看| 欧美一区二区三区四区在线观看地址| 久久躁狠狠躁夜夜爽| 国产精品www994| 亚洲第一视频| 久久国产手机看片| 亚洲精品影院| 麻豆成人在线观看| 国产精品视频久久| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美日韩综合一区| 亚洲国产精品一区二区尤物区| 香蕉乱码成人久久天堂爱免费| 欧美日韩亚洲一区|