2015-04-06 45 views
0

我已經安裝了Postgres數據庫,我試圖從C++代碼(VC++)連接到它。我不想將硬編碼值傳遞給Connect函數(編輯:PQconnectdb),我想寫一個配置文件並讀取值並將其發送到連接函數。從MFC中的配置文件加載字符串

如何在vC++中執行此操作?請幫幫我。

CString Connect= _T("host=x.x.x.x port=5432 dbname=xxxxxx user=cdfvv password=hccjjj"); 

而不是像這樣分配值,我想寫一個配置和處理它。

+0

什麼「'Connect'功能」?你在使用libpq嗎? C#和nPgSQL? ODBC? ADO/ADO.NET?實體框架?詳情請。另外,應用程序配置文件似乎與PostgreSQL沒有多大關係。最後 - 爲什麼PostgreSQL 9.1新代碼? – 2015-04-06 08:23:55

+0

是的,我正在使用PQConnect函數來連接數據庫,它將有輸入字符串連接爲PQConnect(連接),其中連接是_T(「主機= x.x.x.x端口= 5432 dbname = xxxxxx用戶= cdfvv密碼= hccjjj」); – sasikala 2015-04-06 09:25:16

+0

據我所知,'CString'是一個MFC C++類,可以隱式轉換爲'const char *'。假設你正在使用C++和libpq,那麼我想你一定意味着你正在調用[libpq的'PQconnectdb'函數](http://www.postgresql.org/docs/current/static/libpq-connect.html)。所以你需要從你使用的任何配置文件中加載字符串,並將它傳遞給'PQconnectdb'。這似乎與PostgreSQL無關;這似乎是Windows API/MFC編程的基礎。 – 2015-04-06 12:09:43

回答

2

我編輯了自己的問題,與我最好的猜測,你實際上是試圖問。

MFC提供了CWinApp::GetProfileStringCWinApp::SetProfileString方法,使用INI文件或註冊表其抽象配置。如果你使用MFC,看起來像你,你應該使用這些方法。

否則,在Windows上,請考慮使用the win32 Registry APIs這是在Windows上存儲應用程序配置的常用方式。

或者如果您願意,可以使用XML配置文件;見the manual for MSXML

另外,還有許多第三方庫可用於解析和存儲各種格式的配置文件,包括.ini-style。


個人而言,我建議你不要使用MFC的,這我猜你是根據你的使用CString類的使用(?)。 IMO MFC已過時。如果您正在編寫控制檯應用程序,請使用簡單的C++。如果您正在編寫GUI應用程序,請考慮使用Qt,或者使用C#和WinForms讓您的生活更輕鬆。


(順便說一句:我從來沒有寫一個MFC應用程序,因爲我只在跨平臺應用程序的工作我只是做了一些谷歌搜索。)