WFCでINIファイルの読み込み

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Re

WFCでINIファイルの読み込み

#1

投稿記事 by Re » 12年前

VC++2010のWFCでカウンターを作成しています
他のアプリケーションで作成したINIファイルを読み込みたいのですが

コード:

CCM1=GetPrivateProfileInt("ProgramData","CCM1",0,"C:\\counter\\tile counter.INI");
と記述すると
error C3861: 'GetPrivateProfileInt': 識別子が見つかりませんでした
と出てきます。
INIファイル関連のコードがこれだけなのが原因でしょうか?
また読み込ませるにはどのように記述すればいいでしょうか?
INIファイルの内容は

コード:

[ProgramData]
CCM1=0
CCM2=0
CCM3=0
CCM4=0
CCM5=0
CCM6=0
です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: WFCでINIファイルの読み込み

#2

投稿記事 by softya(ソフト屋) » 12年前

すいません私が詳しくないだけかもしれませんが、WFCが分からないです。
WFCで知っているのは、これです。
「The Win32 Foundation Classes (WFC) - Version 45 - CodeProject」
http://www.codeproject.com/Articles/520 ... FC-Version

WCFだとこんな物があります。
「Windows Communication Foundation - Wikipedia」
http://ja.wikipedia.org/wiki/Windows_Co ... Foundation

ちなみにGetPrivateProfileIntはWin32APIの関数と思われます。
開発環境がよく分からない状況ですので、解説してもらえると助かります。
前回の質問を見る限り、CLRフォームアプリで作成しているように見えます。その場合に言語はC++/CLIとなります。
「フォームの自動読み込み • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=14830
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re

Re: WFCでINIファイルの読み込み

#3

投稿記事 by Re » 12年前

開発環境をあまり記述していなくてすいません...
使用ソフト:MicroSoftVisualC++2010Express
プロジェクト:Windowsフォームアプリケーション
OS:Windows7HomePremium
システム:64ビットオペレーティングシステム
です

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: WFCでINIファイルの読み込み

#4

投稿記事 by softya(ソフト屋) » 12年前

書かれていないですが肝心のWFCとは何でしょうか?
それとCLRフォームアプリなら、Win32APIではなく.Netのiniファイル用のクラス・メソッドが有るはずです。
※ 私自身は.Netのライブラリは詳しくありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re

Re: WFCでINIファイルの読み込み

#5

投稿記事 by Re » 12年前

すいません...
Windowsフォームアプリケーション=WFC(WindowsFormConsole application)
と勘違いしていました...
Windows Foundation Classes はJava関係のクラスライブラリだったのですね...

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: WFCでINIファイルの読み込み

#6

投稿記事 by softya(ソフト屋) » 12年前

調べて見た所GetPrivateProfileIntに該当するものがない様なのでGetPrivateProfileIntを呼び出すのは
「iniファイル 取得について」
http://hpcgi1.nifty.com/MADIA/Vcbbs/www ... 090020.txt
との事です。
なお、.NETでiniファイルが扱えないのは非推奨なのでは?との疑問が生じるわけです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re

Re: WFCでINIファイルの読み込み

#7

投稿記事 by Re » 12年前

URLを参考にしDllImportさせようとしたところエラーが発生してしまい
1>LINK : warning LNK4022: シンボル 'main' の unique match が見つかりません。
1>LINK : warning LNK4002: "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) は Debug\カウンター.obj で定義されています。
1>LINK : warning LNK4002: "int __clrcall カウンター::main(cli::array<class System::String ^ >^)" (?main@カウンター@@$$FYMHP$01AP$AAVString@System@@@Z) は Debug\カウンター.obj で定義されています。
1>LINK : fatal error LNK1152: 1 つ以上の装飾されていないシンボルを解決できません。
と出ました。

INIファイルが非推奨であればテキストファイルの値を取得するということは可能でしょうか?

Re

Re: WFCでINIファイルの読み込み

#8

投稿記事 by Re » 12年前

すいません解決しました。
#pragma onceのあとに
#include <fstream>を加え起動時の処理に

コード:

std::ifstream ifs("C:\\uwsc48e\\test.txt");  
int CCM1,CCM2,CCM3,CCM4,CCM5,CCM6,CCM7,CCM8,CCM9,CCP1,CCP2,CCP3,CCP4,CCP5,CCP6,CCP7,CCP8,CCP9,CCS1,CCS2,CCS3,CCS4,CCS5,CCS6,CCS7,CCS8,CCS9,CCT1,CCT2,CCT3,CCT4,CCH1,CCH2,CCH3;  
char split;  
ifs>>CCM1>>split>>CCM2>>split>>CCM3>>split>>CCM4>>split>>CCM5>>split>>CCM6>>split>>CCM7>>split>>CCM8>>split>>CCM9>>split>>CCP1>>split>>CCP2>>split>>CCP3>>split>>CCP4>>split>>CCP5>>split>>CCP6>>split>>CCP7>>split>>CCP8>>split>>CCP9>>split>>CCS1>>split>>CCS2>>split>>CCS3>>split>>CCS4>>split>>CCS5>>split>>CCS6>>split>>CCS7>>split>>CCS8>>split>>CCS9>>split>>CCT1>>split>>CCT2>>split>>CCT3>>split>>CCT4>>split>>CCH1>>split>>CCH2>>split>>CCH3;

textBox1->Text=(4-CM1-CCM1).ToString();
としたところ起動時値の分だけ減算されていました
テキストの内容は

コード:

1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
です


ご回答ありがとうございました!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: WFCでINIファイルの読み込み

#9

投稿記事 by softya(ソフト屋) » 12年前

.NETの設定の保存はxml形式のテキストファイルのようです。
ApplicationSettingsBaseクラスなどが用意されている様子ですね。
「アプリケーションの設定を保存する: .NET Tips: C#, VB.NET」
http://dobon.net/vb/dotnet/programing/s ... tings.html

C++/CLIの.NET情報は決して多くないので、C#やVBの情報を参考にしてください。
マイクロソフトとしてはVisualStudio2012からC++/CLIでのフォームアプリを非推奨にしてますので、今後も情報が増える事はないと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る