本文涵蓋了一個簡單的C實現的搜索引擎的搭建始末。
我通常使用SQL Server和C #,但我教C/C++的朋友要遠離微軟。在過去,MySQL不是我想要的數據庫,因為標準安裝版不支持事務,但它變得越來越成熟。我使用64位InnoDB引擎的MySQL 5.6,使用Unicode(utf8)編碼,這是我新數據庫的默認設置。
Freetext是InnoDB的新特征,它在MySQL5.6版中被首次推出。
與C相比我通常更喜歡C++,即使在小項目中:不用知道所有的函數名,而且有一些內置的常用操作和漂亮的IntelliSense支持。在C++中,還有有STL及集合和字符串助手。
C++的Mysql接口比較弱,而C的接口很成熟,所以我決定使用C接口。
C的dll文件是和WCF一起發布的,以便完成AJAX請求,在Visual Studio Ultimate 2012中我使用C#的"WCF Service Application"模板,我搜索了使用C++搭建WebService的方法,但只找到一些使用C++處理WebServices調用的例子。
用戶界面是一個使用Jquery和Jquery-UI自動提示的HTML界面,頁面被增加到"WCF服務應用",項目被命名為VisionWeb
網頁看起來是這樣的:

我在.NET框架4.0,64位系統上配置這個項目,如果你使用32位的Mysql服務器,你必需隨之做些更改。記得設置UNICODE選項為默認值。
配置MySQL
你有可能會從VisionSmall中打開這個VisionDAL項目, 假定你必須修改連接MySQL的C程序接口. 在這兒,我介紹了如何在新項目中安裝MySQL接口: 檢查那些設置是否符合你的要求,尤其是mysql.lib文件和VisionDAL.dll的路徑.
在Visual Studio中,添加一個VisionDAL工程, 通過這個流程"Other Languages/Visual C++/Empty Project". 在這之中, 你只需要改變"應用類型" 為DLL. 把VisionDAL.cpp改名為VisionDAL.c, 這就清楚的告訴Visual Studio把編譯器從C++改為C. 給這個工程添加一個頭文件命名為VisionDAL.h.
在窗口中, 右擊VisionDAL工程并選擇屬性. 然后在"配置屬性"/Linker/Input, 選擇 "Additional Dependencies" 并且添加libmysql.lib 到這個路徑, 不要忘記了分隔符 ";".
在 "配置屬性"/Linker/General這個菜單下, 選擇"添加庫目錄" ,對我來說就是添加 C:/Program Files/MySQL/MySQL Server 5.6/lib>這個目錄. 現在我們已經連接到C接口, 但是在libmysql.lib中調用執行的DLL必須是系統的可執行路徑: 從控制面板, 選擇系統, 點擊 "高級系統設置", "點出環境變量" 在 "系統變量"下面,選擇路徑, 并添加這個 libmysql.lib 的路徑 (DLL和這個lib文件在相同的文件夾里): C:/Program Files/MySQL/MySQL Server 5.6/lib.
我們也需要把這個VisionDal.dll放到我們的path路徑里, IIS 并不能從這個網站的bin目錄中取到DLL文件. 添加 <項目路徑>/x64/debug 到路徑變量path里. 重啟后生效. 當網站得到一個request請求時將會加載VisionDAL.dll; 如果你現在重建項目, 你會得到一個VisionDAL.dll的寫入錯誤: 為了解決它, 重啟該網站或是用unlocker之類的解鎖.
新聞熱點
疑難解答