2014-12-06 24 views
-1

我厭倦了在託管C++應用程序中如何使用user.config而不是app.config。我發現的所有內容都是關於C#的,我無法弄清楚如何轉換爲C++(屬性名稱空間不存在)如何在C++中使用user.config cli

任何人都可以讓我瞭解這方面的知識嗎?我需要知道如何創建,讀取和寫入user.config文件。

謝謝

+0

那麼到目前爲止發現了什麼......? – t3chb0t 2014-12-06 06:30:38

+0

我發現在C#項目中,VS創建了一個名爲Default的讀/寫設置,將存儲在user.config中的靜態類。我發現這個類是在C#中只存在的名稱空間內的屬性。我發現思想http://stackoverflow.com/questions/2632806/how-to-write-to-a-user-config-file-through-configurationmanager(在C#中),你可以使用ConfigurationUserLevel和ConfigurationManager來訪問user.config,但沒有部分可以在裏面訪問(appSettings拋出阻塞的錯誤,默認爲空) – 2014-12-06 12:25:46

+0

另外,UserSettings不存在於C++中,而MSDN在C++中沒有幫助...我找到的所有代碼都與C# 。 我開始使用app.config(成功),但我不想需要管理員權限來寫(因爲它是Program Files文件夾)。所以,我更喜歡使用user.config而不是整個系統來關心用戶。 – 2014-12-06 12:36:01

回答

2

按照此步驟,它會像期望:

1 - 添加引用System.Configuration

2 - Add New Item>Visual C++>Utility>Configuration file

3 - 打開app.config並添加您的設置,例如:

<configuration> 
    <appSettings> 
    <add key="greeting" value="Hallo world!" /> 
    </appSettings> 
</configuration> 

4 - 的app.config複製到輸出文件夾中後生成事件:轉到Project Properties>Configuration Properties>Build Events>Post-Build Events>Command Line和補充一點:

copy app.config "$(TargetPath).config" 

5 - 閱讀設置:

String^ greeting = ConfigurationManager::AppSettings["greeting"]; 
Console::WriteLine(greeting); 

這裏是AppConfigDemo項目C++/CLI

+0

我想我沒有正確解釋自己。我想使用user.config,而不是app.config。我已經知道如何使用app.config。 原因是因爲應用程序安裝在Program Files \ AppName中,所以app.config轉到那個地方。最終,我需要更改應用中的某些設置。因爲我需要管理員權限來執行此操作(因爲Program Files \ *只能讀取沒有管理員用戶) 此外,可能只有一個用戶,因此我希望每個人都可以保存自己的配置(但app.config對所有用戶都是通用的) – 2014-12-06 17:47:37

+0

我不會用C++/CLI做太多事情,但真正有必要。您是否看到有關[如何將user.config保存到AppData \ Roaming文件夾](http://stackoverflow.com/a/4298215/235671)的問題?我會用C#dll去設置。 – t3chb0t 2014-12-06 18:21:26

+0

感謝您的幫助,但是這個問題已經關於user.config的位置(在C#中),我的問題是我不知道如何創建它(並且顯然是讀/寫)。在C#中(正如我讀過的),VisualStudio爲你創建和管理user.config中的設置提供了所有的工作,但是使用C++你完全孤單...... – 2014-12-07 11:42:05