- 1 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:08:39 ]
- おそらく、.NET開発でデファクトスタンダードに最も近い
であろうC++/CLIについて語ろうぜ! このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。 .NETのクラスライブラリの使い方といった質問は姉妹スレ「くだすれC++/CLI(初心者用)」に お願いします。 前スレッドはこちら (p)pc8.2ch.net/test/read.cgi/tech/1126450441/l50 姉妹スレ くだすれC++/CLI(初心者用) (p)pc8.2ch.net/test/read.cgi/tech/1142144110/l50 managed C++ やろうぜ!! 002 (p)pc8.2ch.net/test/read.cgi/tech/1139043535/l50
- 367 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:01:52 ]
- >>366
それにしては、Win32で出来るものが出来なかったり、中途半端。 だったらVCLみたくネイティブクラスライブラリ充実させろよ。
- 368 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:05:21 ]
- >クラスライブラリが充実しているので
これって、ネイティブ版クラスライブラリを作成すれば完璧だおね。 M$のドトネト囲い込み戦略に嵌められてるだけじゃないの? ドトネトは終焉したわけだし、無視した方が良いよ。
- 369 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:37:37 ]
- ドトネト君っていろんなスレにいるな。
飽きないの?
- 370 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 13:00:03 ]
- >プラットフォームにVista
つ ttp://gigazine.net/index.php?/news/comments/20070801_will_not_move_to_vista/ 企業ユーザーの大多数はVistaへの移行を考えていない
- 371 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 16:47:45 ]
- そりゃ、CreateFile系のAPI自体がバグでロックしちゃうんだもの。
企業ユーザが使おうとするわけがない。 >> VISTA
- 372 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 17:10:29 ]
- >CreateFile系のAPI自体がバグでロックしちゃうんだもの。
kwsk
- 373 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 17:12:17 ]
- これか
ttp://d.hatena.ne.jp/NyaRuRu/20070731/p2
- 374 名前:デフォルトの名無しさん [2007/08/01(水) 22:23:38 ]
- Form.hに実装を書かせられるの嫌なんだけど、どうにかならない?
てか、なんでForm.hに実装させるような仕組みにしたんだろう?
- 375 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:02:47 ]
- Form.cppに実装を移せば?
- 376 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:59:06 ]
- 実装を書かせるといっても、イベント用に開発環境が自動生成したものですよね。
これをcppにということになると、たとえば、フォームデザインの変更を ちょこちょこやる場合、Formのデザイナとヘッダとcppを行ったり来たりでは やっぱり大変だよね。
- 377 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 00:59:04 ]
- ぶっちゃけVC++8の.NETサポートは「諦めろ」としか言えないよ・・・
- 378 名前:デフォルトの名無しさん [2007/08/02(木) 04:03:15 ]
- VC++9 では何か変わってるの?
- 379 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 09:44:37 ]
- そりゃ変わってますよw
- 380 名前:デフォルトの名無しさん [2007/08/02(木) 18:35:26 ]
- VC2008先行して使っている人、
デサイナが生成するコードに何か大きな変化は有りましたか?
- 381 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:36:34 ]
- 試してみたけど変わってないみたいだね。残念だ…
- 382 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 22:27:36 ]
- C++/CLI に関してはろくに対応されていないね。STL/CLR なんか作ってる場合じゃないと
思うんだが。結局、ネイティブ・アプリの ClickOnce 対応もしていないし
- 383 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 22:53:42 ]
- いや、STL/CLRは「ろくな対応」なんじゃないか?
- 384 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:11:20 ]
- ネイティブの STL にマネージド・オブジェクトが格納できればいらない対応でしょ
むしろ、2種類のライブラリに混乱しかねない
- 385 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:41:52 ]
- マネージドなSTLはそれになりに便利だと思う。
標準C++ & boost萌えな俺には、C++/CLIやC#はきついんだが…
- 386 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:17:10 ]
- >>384
確かに。少なくともクラス定義だけでも、 ネイティブクラスと値クラスに違いがなければいける。 前にも書いた気がするけど、ハンドル用のアロケータ書いてみたが、 ネイティブクラスはハンドルを持てないのでだめだった。
- 387 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:27:31 ]
- C++0x の concept map が C++/CLI に実装されたら、それつかって managed class を STL コンテナにいれられるのでは...
- 388 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 10:16:37 ]
- だとしたら、ほんとに STL/CLR は C++0x が確定するまでの繋ぎでしかなくなるな
- 389 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:18:52 ]
- いや、一応STL/CLRは一度覚えればC#でも使えるんだろ?
- 390 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:21:41 ]
- STL/CLR は C++/CLI せんよーだってさ
テンプレートで実装してるしね
- 391 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:22:36 ]
- じゃあ、意味ねーなw
- 392 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:33:20 ]
- なんかグダグダ
- 393 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:46:48 ]
- でもまだSTL/CLRのコンテナは、System::CollectionsやSystem::Collections::Genericの
インタフェースを実装しているのが強みと言えるかもしれない。
- 394 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:51:41 ]
- STLがあればGenerics要らんやん。
- 395 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 17:49:38 ]
- C# にも展開してくれれば良かったんだけどなぁ
- 396 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:58:40 ]
- まぁどっちかっつーと.NET言語の態勢を保ちつつ
コンパイル時のコード生成であるC++テンプレートをサポートするってのが 端から無茶やってるとは思うけどねぇ。
- 397 名前:デフォルトの名無しさん [2007/08/04(土) 13:00:12 ]
- C++/CLIでは
stringstream に相当するものは用意されているのでしょうか?
- 398 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:03:09 ]
- .NETのクラスライブラリにはMemoryStreamが似ている存在。
でもstringstreamだって使いたければ使えばいいし。
- 399 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:31:51 ]
- StringBuilder や StringReader, StringWriter を使ってもいいな
- 400 名前:デフォルトの名無しさん [2007/08/04(土) 23:23:24 ]
- C++/CLIでも派生させるクラスのデストラクタはvirtualにすべき?
勝手になる?
- 401 名前:397 [2007/08/04(土) 23:41:29 ]
- 長さの単位がString,StringBuilderはInt32でStreamはInt64くさいけど
System::IO::Streamとしても使いたかったんで MemoryStreamから派生することにした。 順序つきで使える operator >> は面倒だからやめた・・・。 generic <typename T> MyStringStream% operator << (T x) { cli::array<unsigned char>^ buffer = System::Text::Encoding::Unicode->GetBytes(x->ToString()); this->Write(buffer,0,buffer->Length); return *this; }
- 402 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:21:56 ]
- >>400
ポインタを使った場合だと、virtual 付けないとダメね ハンドル型だと、virtualなしでもいける
- 403 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:23:24 ]
- >>402
へえ、boost::shared_ptrみたいだな
- 404 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:26:44 ]
- 「リソース管理できてデストラクタに罠がない賢い手段」
目指してるものが同じだからな。
- 405 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 00:54:52 ]
- >>402
トンクス!
- 406 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:28:41 ]
- ハンドル型っていまいち概念がわからん。
マネージドヒープにある実体を指すポインタなんだろうか?
- 407 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 01:35:03 ]
- ガベコレの都合から考えたほうが早いかも
- 408 名前:デフォルトの名無しさん [2007/08/05(日) 02:07:15 ]
- ref class だと
デストラクタってDisposeじゃなかった? だからvirtualにならないとつじつまが合わない気が・・・
- 409 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 05:28:45 ]
- >>408
ref classのデストラクタはDispose()ナマじゃなからvirtualかどうかは意味がない。 デストラクタを宣言すると暗黙でDispose(bool)とDispose()とFinalize()が定義されて、 デストラクタはDispose(bool)から間接的に呼ばれるので、 結果、継承ツリーの下位のほうから順にデストラクタが呼ばれる形になる。
- 410 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 08:36:27 ]
- >>406
ようするにそういうこと。ただしポインタ演算禁止で、演算子多重定義が使える。 ポインタ演算がやりたければinterior_ptr<>。
- 411 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:26:15 ]
- >>406
> マネージドヒープにある実体を指すポインタ が含まれてます。ハンドルには。 そのポインタ(あるいはID)を直接操作するのは危険なので、 (たとえばGCで、場所を移動されるかも知れないので) ハンドルを介して、その対象を操作するのです。 用語としては、車を運転する時に、直接タイヤを動かすのではなくて、 ハンドルを回して、タイヤを動かすあのハンドルと同じです。 CでFILE型がファイルハンドルと呼ばれるのと同じ。
- 412 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 17:38:01 ]
- >>410,411
thx 引数にint^で受け取ると勝手にSystem::Int32^になってるんだな。 int main(){ int x=10; plusA(x);//値は変わらない plusB(x);//値が変わる } void plusA(int^ x){ ((int)x)++; //int型へのキャストが必要 } void plusB(int% x){ x++; //いまいち理解できない } ところでConsole::WriteLineっていうのがあったと思うけど、 どうなったのでしょうか?VS2005のどこにも出力されないんですけど。
- 413 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:48:52 ]
- >>412
%は参照&のマネージド版。 ハンドルは、一応ポインタになぞらえられることを示すとするとこんな感じ。 値型をボックス化したハンドル絡みではこういうことになる。 void plusA(int^ x) { (*x)++; } int x = 10; int ^h = x; plusA(h); std::cout << x << ' ' << *h << '\n';
- 414 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:13:39 ]
- void plusA(int^ x) {
(*x)++; } int ^x=10; plusA(x); //書き換わる plusA(*x); //そのまま ようするに参照ということかな?VBのByrefみたいな。 std::coutもprintfもWriteLineもどこにも出力されないんだが、 どうやって出力結果を見てるの?
- 415 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:48:01 ]
- >>414
Console::ReadLine();などででプログラム止めてる? plusA(*x); って、*xがplusA関数に渡されるときに、 *xのコピーオブジェクトが作成され、そのハンドルがplusA関数の仮引数に 格納されるから、値が変わらないってことでいいのかな? そうそう、 (10).Equals(11); みたいに定数もオブジェクトとして扱われるんだね。
- 416 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:21:27 ]
- >>414
コンソールプログラムのプロジェクトにしている? そうしないと、cout, printf, WriteLineの出力先は現れないよ。 コンソールプログラムのプロジェクトでなかったのなら、 プロジェクトのプロパティのリンカのシステムか何かのとこにサブシステムの設定があるから、 その中のコンソールを選べばいい。 msdn2.microsoft.com/ja-jp/library/fcc1zstk(VS.80).aspx >>415 plusA(*x);でコピーが作成されるのはそのとおり。ボクシングとは、 結局マネージドヒープに新しくオブジェクトを作って、そこへコピーすること。 値型のハンドルを引数に受け渡しすること自体はVBのByRefや Cのポインタ渡しそっくりでいいんだが、ボクシングという 暗黙のオブジェクトのコピーが働くから話が少々厄介になっている。
- 417 名前:デフォルトの名無しさん [2007/08/06(月) 21:48:15 ]
- boostみたいにprivateもシリアライズできる
非侵入型のシリアライズはないのでしょうか?
- 418 名前:デフォルトの名無しさん [2007/08/07(火) 19:32:08 ]
- 最初2003のManaged C++で作ってたんだが
都合により2005のC++/CLIに移ることにした。 プロジェクトを変換してコンパイルエラーを片付け、 いったんは動くようになったんだが しばらくしてリビルドしようとすると リンクエラーLNK2020「メタデータの操作に失敗しました」 が発生する。 今環境がないんで詳しいエラー内容は書けないんだが 「プロパティの数が違う」みたいなことを言われていた。 LNK2020にはいろいろ種類があるらしく、 「重複する型に、適合しないフィールド宣言があります」なら リビルドすればいいらしいんだが、リビルドしてみても直らなかった。 プロジェクトを新規作成してファイルを全部入れても同じエラー。 ググっても英語のページすら出てこなかった。 誰か対処方法知ってたらplz
- 419 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 19:38:50 ]
- 最低限のコードを入れてリビルドして、どうなる?
- 420 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 19:42:36 ]
- >>419
stdafx.h stdafx.cpp main.cpp resource.h だけの状態?
- 421 名前:デフォルトの名無しさん [2007/08/07(火) 20:48:11 ]
- すまんLNK2022だった
- 422 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:26:28 ]
- アノニマスな構造体があったの?
- 423 名前:418 mailto:sage [2007/08/08(水) 20:34:16 ]
- どうやらプロジェクトファイルが壊れていた模様。
もう一回プロジェクト変換しなおして ソースとヘッダ入れたら動いた。 お騒がせスマソ >>422 なかった
- 424 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 04:43:41 ]
- VC++ expressで
C++/CLIを使うときの制限事項ってどんなのがありますか?
- 425 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 12:05:30 ]
- 別に何も無いよ
- 426 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 05:45:05 ]
- え?そうなの?
デバッグ機能とかGUIのデザインあたりが はしょられてるんかと思ってた
- 427 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 08:36:21 ]
- >>424
msdn2.microsoft.com/ja-jp/library/hs24szh9(VS.80).aspx
- 428 名前:デフォルトの名無しさん [2007/08/19(日) 21:32:30 ]
- intからenum(enum classじゃない)に変換したいんだが
普通のC言語のようにただのキャストじゃ変換できない? どうもできていないような気がするんだが。
- 429 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 22:09:33 ]
- >>428
enum classじゃないenumはC++のそのままですよね? 単に使い方がおかしいだけでは。ソースを示してみたらどうです。
- 430 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 22:34:08 ]
- DirectXのコードなんだが
D3DFORMAT fmt = (D3DFORMAT)21;
- 431 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 22:38:04 ]
- 実際のコードでは21の部分は変数になってる。
ユーザの入力。
- 432 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 22:44:36 ]
- 実体が unsigned long int なんじゃね?
- 433 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 23:03:15 ]
- ヘッダではこうなってる
typedef enum _D3DFORMAT { (省略) D3DFMT_A8R8G8B8 = 21, (省略) } D3DFORMAT;
- 434 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 23:05:14 ]
- 直後にブレークポイントつけてウォッチすると
fmtが「未定義の値」になってる。
- 435 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 23:48:25 ]
- これで普通に代入できたぞ?
int val = 21; D3DFORMAT fmt = (D3DFORMAT) val; std::cout << fmt << std::endl; VS 2008 Beta2 なんで、2005でも大丈夫かわからんが
- 436 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 23:52:56 ]
- version違いの*.hがあって、21がない方のをincludeしてるとか。
- 437 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:53:44 ]
- d3d9types.h なんて前からあるっしょ
これでリリース・ビルドしていたせいで変数がデバッガ上で正常に表示されていなかった なんてオチだったら指さして笑うが
- 438 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:24:44 ]
- C++/CLIって実際どのくらい使われてるの?
- 439 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 01:02:33 ]
- Dの5倍くらい。
- 440 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 06:26:53 ]
- >>438
俺仕事で使ってる ただのラッパークラスだが
- 441 名前:デフォルトの名無しさん [2007/08/21(火) 09:18:49 ]
- >>440
ネイティブのライブラリをドトネトから使うため?
- 442 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:54:43 ]
- >>411
前の製品の再利用可能な部分 GUIはC#になっちまった
- 443 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:55:14 ]
- 安価ミス
>>441な
- 444 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 23:01:14 ]
- >435
enumは int だし。ってのはCの仕様だっけか。
- 445 名前:428 mailto:sage [2007/08/22(水) 21:45:58 ]
- どうやらint関係なしに
直接D3DFMT_R8G8B8を入れても <未定義の値>になる。 デバッグにはなってるんだが。
- 446 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:32:24 ]
- enum は含まれる値を全て表現可能なサイズの型になる。
- 447 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 08:38:13 ]
- >445
直接、D3DFORMAT の enum 値を出力してみたら? TRACE でも cout でも何でもいいけど ちなみに、コンパイラは VC8 なんだよな?
- 448 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 21:02:06 ]
- >>447
ちゃんと21が出たw VC8です デバッガがミスっただけかな。
- 449 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 18:29:40 ]
- フォームを多言語化して、ニュートラルと日本語のリソースを交互にいじってると
設定した値が元に戻ったりするんですが、これについて何かご存じな方 いらっしゃいますか?
- 450 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 18:35:42 ]
- 追記です
VS2005上での話です。
- 451 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 15:44:35 ]
- この言語ほんとに流行りそうなの?
- 452 名前:デフォルトの名無しさん [2007/09/01(土) 20:26:10 ]
- .NET が流行れば。
だって既存の C++ のライブラリの ラッパーとしての存在価値は少なくともあるから。 で、.NET というか CLR ってこれからはやるのかね? mono でも ASP.NET をはじめとしていろいろ動く ようになってるし、.NET Compact Framework も 広がりを見せているようだけど。
- 453 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 21:22:06 ]
- C++/CLI自体が単体で流行ることはないと思う。
あくまでもC++の資産を.NETで利用するためのツール。
- 454 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 22:30:15 ]
- C++/CLI 自体は JDirect の正当な発展系だと思う
.net が COM 拡張として発生したように、外部管理オブジェクトのハンドリング用言語として C++ を拡張したものだから Windows 用の Objective-C みたいなものなんだけどなぁ
- 455 名前:デフォルトの名無しさん [2007/09/01(土) 23:46:12 ]
- Objective-C つかったことないや
- 456 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 23:48:42 ]
- はいはい死滅死滅
- 457 名前:デフォルトの名無しさん [2007/09/02(日) 14:31:02 ]
- 2008になったらC++CLIは何かかわんの?
- 458 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 14:47:34 ]
- >>457
STL/CLRとこれまで規格に非準拠だった部分の対応。 例えばC型配列がarrayと同等に扱えるようななった。
- 459 名前:デフォルトの名無しさん [2007/09/02(日) 16:07:58 ]
- がるぽっ
- 460 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 16:09:48 ]
- C++0x が確定するまでは、大きな修正は入れてこないだろうね
また、いろいろと言われるから(w
- 461 名前:デフォルトの名無しさん [2007/09/02(日) 16:50:15 ]
- なんか、見た目が変態的なソースコードになるよな・・・
無理矢理.netに対応させた文法を追加せずに、 C++にライブラリで誤魔化したほうがマシな気が・・・ .netに最適化した言語、とかならC#ってのをやってるのだし、 あんまりC++/CLIの存在意味がないような・・・
- 462 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 18:05:21 ]
- それをやったのが mc++ で、マネージド・オブジェクトの判別が付かなくなったので
明示的に分離するように変更したんだよ C++ は既存のままで、CLI を追加構文で、これでようやく見通しが良くなったのさ oldSyntax で一度書いてみると、ライブラリで対応って言うのが以下に非現実的か よくわかるよ
- 463 名前:デフォルトの名無しさん [2007/09/02(日) 20:13:36 ]
- 正直 Managed C++ は「よけいわかりにくいわ!」って
感じだったからな。マネージドな部分とそうでない部分が 明確に分かれている C++/CLI のほうがわかりやすい。 確かに上にあった Objective C の Microsoft 版だという たとえは的を射ていると思う。
- 464 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 21:16:36 ]
- 漏れにスキルさえあれば、JVM や Squeek に CLI ラッパをかぶせて、GCC の C++/CLI
実装を作ってみるのになぁ
- 465 名前:デフォルトの名無しさん [2007/09/07(金) 18:04:21 ]
- .NET2005 C++/CLIで開発しています。
設定情報をapp.comfigから読みだすために app.config(appはプログラム名へ後に変換)へ例えば <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="HOGE" value="ほげほげ" /> </appSettings> </configuration> と書いて、C++/CLIのコード(フォームアプリ)からは、 MessageBox::Show(System::Configuration::ConfigurationSettings::AppSettings[ "HOGEHOGE"]); MessageBox::Show(System::Configuration::ConfigurationManager::AppSettings[ "HOGEHOGE"]); と呼び出して表示しているのですが、OSがXP(SP2)だとうまくいき、 Win2000(SP4)だと表示が空文字になってしまいます。 MSDNにはWin2000(SP4)もサポートしているように書いてありますし、 vcregist_x86.exeやdotnetfx.exeも実行してあるのですが。。。 このあたりの情報(こうすれば動く、実はサポート外など)を お持ちの方、いましたら教えていただけませんか。 ネットで散々探しましたが、意外とこの話題少ないんです。 よろしくお願い板します。
- 466 名前:465です [2007/09/07(金) 18:08:54 ]
- ごめんなさい。
<add key="HOGE" value="ほげほげ" /> は <add key="HOGEHOGE" value="ほげほげ" /> の間違いです。
- 467 名前:デフォルトの名無しさん [2007/09/08(土) 09:39:16 ]
- レベル高すぎ
|

|