[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 04/12 03:21 / Filesize : 122 KB / Number-of Response : 487
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれC++/CLI(初心者用)part2



1 名前:./1256645713/662 mailto:sage [2010/03/15(月) 09:41:19 ]
おそらく、.NET開発でデファクトスタンダードに最も近いであろう
C++/CLIについて語ろうぜ!

このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。
.NETのクラスライブラリの使い方といった質問は Visual Studioスレにお願いします。

前スレッドはこちら
くだすれC++/CLI(初心者用)
pc8.2ch.net/test/read.cgi/tech/1142144110/l1

dat落ち姉妹スレ
C++/CLI part3
pc12.2ch.net/test/read.cgi/tech/1206447234/l1
pc11.2ch.net/test/read.cgi/tech/1142147319/l1
pc8.2ch.net/test/read.cgi/tech/1126450441/l1

managed C++ やろうぜ!! 002
pc8.2ch.net/test/read.cgi/tech/1139043535/l1

68 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:51:50 ]
> LPVOIDからarray<String^>^に変換したい
>  lpBuf=Environment::GetCommandLineArgs();//コマンドラインから取得//ここでエラー
コードの方はarray<String^>^からLPVOIDに変換したいように見える

69 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 03:19:27 ]
>>67
2008 Express Editionを使っていまして・・・ヘッダーがないらしいです。
www.codeguru.com/forum/showthread.php?t=468408
>>68
コマンドライン引数を得た後、array<String^>^に変換しようと思ったのです。
宣言時からarray<String^>^だとMapViewOfFileでつまずいちゃうので・・・。
どちらにせよ、コマンドライン引数を得た後、
共有メモリarray<String^>^として反映できればいいのですが。

70 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 03:50:07 ]
全体にコードが滅茶苦茶に見えるし
そもそもLoadイベントなんかでやる処理には見えないけど(mainでやることだろ)

共有メモリにString^を書き込みたいのなら
> ttp://www.codeguru.com/forum/showthread.php?t=468408
のリンク先にString^をポインタに変換する方法が載ってるからmemcpyなりなんなりすればいい
複数の文字列を書き込む必要があるなら\0なりなんなりで区切る

71 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 06:10:09 ]
共有メモリをやめてSendMessageに妥協しました
とにかく二重起動時にコマンドライン引数を渡すことができました!
皆様、貴重なアドバイスをありがとねん

72 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 12:39:42 ]
C++/CLIにおけるsafe_cast,static_cast,dynamic_castの違いについて教えてくださいよ

safe_cast   :型が合わないと例外が発生、実行コスト中
dynamic_cast:型が合わないとNULLを返す、実行コスト大
static_cast  :型が合わなくても何もしない、実行コスト小

この認識であってますか?


73 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 16:11:05 ]
safe_castとdynamic_castのコストはほぼ同じ。
static_castが速くなるのはダウンキャストの場合だけ。静的に解決できる場合はsafe_castと同じ。

74 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 20:39:28 ]
>>66
いまさらだけど、.NET Framework 4以降ならMemoryMappedFileクラスを使えばいいと思うよ。

75 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 20:52:42 ]
.NETのハンドルのダウンキャストにstatic_cast使うのは激しく疑問
公式の説明でもパフォーマンスをえらく強調してるが、
そのためにわざわざ検証不能コードにしてまでやるほどのものなのかと

76 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:22:23 ]
www.infoq.com/jp/news/2010/10/Co-Evolution-Doubts
>どうやらそれらは、レガシC++アプリケーションをWindows Phoneに移植したいと考えている多くの開発者にとって、C++/CLIは、ベストなルートに見えるのであろう。

地獄への道は善意で舗装されている



77 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:28:08 ]
筆者自身は否定的に見えるけど、まだそんなこと考えてる人もいるんだねぇ

78 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:52:06 ]
筆者ほんとにC++/CLI触ったことあるのかな
Silverlightで使える範囲のC++/CLIはC++とは全く互換性なくてただの汚いC#なんだけど

79 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 21:47:31 ]
絶対的処理性能が必要な場合か、過去資産使う時以外はメリットよな?

80 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 22:05:21 ]
検証可能なコードしか使えない場合は処理性能同じだし過去資産も使えないよ

81 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:36:15 ]
音の再生ってC++/CLIでできるの?
画像の場合ピクチャボックスみたいな感じに楽に音楽再生させたいのだけど

82 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 23:03:16 ]
ネイティブのC++でできるなら同じ方法でできる
.NET使ってもできる
どちらにしてもC++/CLIとは直接関係ない話

83 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 00:46:33 ]
サンクス
これ絶対初心者向けじゃない気がする

84 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 00:49:57 ]
「気がする」ではない。
絶対初心者向けではない、その通りだ。

85 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 06:02:46 ]
ですよね
俺みたいな勘違い君が集まるから
スレタイ変えると平和になる気がする

86 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 11:40:19 ]
「C#でアプリを作っているが、C++のライブラリで音を鳴らしたい」もしくは
「C++(非CLI)でアプリを作っているが、.NETのライブラリを使って音を鳴らしたい」
→そこだけC++/CLIを部分的に使おう
という風に特別な意図を持って言語であって、
>>81のような質問が出てくる時点でC++/CLIを使うのは間違っている



87 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 12:08:45 ]
前者はCLIでなくていいだろ

88 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 13:10:09 ]
そんなに大きなライブラリでなければ>>19方式がベターだな

89 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 15:50:17 ]
初心者用のC++/CLIじゃなくて
C++/CLIの初心者向けのスレなんだよなw

90 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 16:27:40 ]
C++/CLI初心者にクラスチェンジできる条件が、

1) C++習得レベル一定以上
2) .NET習得レベル一定以上

だからな

91 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:47:19 ]
C++とC#があった上で補助的に使うもんだからねぇ
みんな言うように初心者が使う物じゃないね。

92 名前:デフォルトの名無しさん [2010/10/12(火) 15:18:47 ]
こんなのに熟練したくないわ
どうしても必要なときにちょっと調べてその場が凌げれば充分

93 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 18:55:47 ]
C++にGCを導入した言語。そう考えれば実用性は高いはず。


94 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 19:17:34 ]
C++と、GCをサポートした別の言語を混ぜた言語。
アンマネージとマネージの境界は常に意識する必要がある。

95 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 20:52:46 ]
仕事では使いたくないが、趣味でいじるのなら楽しい。
Express Editionだと実行中のプロセスにアタッチできるのが
C++しかないってのも使ってる理由のひとつ。


96 名前:デフォルトの名無しさん mailto:sage [2010/10/27(水) 21:11:21 ]
日経のムックでC++/CLIが宣伝されてるな。
簡単GUIプログラミング!みたいな見事な勘違い記事だった。騙されて道を誤る初心者が不憫でならない。



97 名前:デフォルトの名無しさん mailto:sage [2010/10/30(土) 18:38:53 ]
道を踏み外しそうになり、C++Builderにシフトできました

98 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 02:19:24 ]
初心者はC#いじっとけ

99 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 23:54:01 ]
増えた言語仕様って、ref, ^, gcnew だけでしょ?


100 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 23:59:30 ]
ジェネリック,トラッキング参照,ファイナライザ,プロパティ,イベント,デリゲート, etc
CLI拡張の部分だけでも言語仕様書の量がC#並み

101 名前:デフォルトの名無しさん mailto:sage [2010/11/03(水) 00:03:31 ]
2種類の言語が同居してる構造だな。

102 名前:デフォルトの名無しさん mailto:sage [2010/11/03(水) 04:25:15 ]
D言語よりマシ。

103 名前:デフォルトの名無しさん mailto:sage [2010/11/03(水) 16:45:49 ]
Z言語になるころには
なんとなくこんな感じ、って思い描いたものが
1行で組みあがるくらいに

なるわけねぇ

104 名前:デフォルトの名無しさん mailto:sage [2010/11/03(水) 17:28:32 ]
ref classのメンバーに構造体がある場合、その構造体のポインターはどうやって取得すればいいの?
pin_ptr<SCRIPT_STRING_ANALYSIS*> pssa = &(this->構造体型の変数);
こういう風にしてもうまくいかないんだが

105 名前:デフォルトの名無しさん mailto:sage [2010/11/03(水) 17:41:24 ]
>>104
自己解決した
単にpin_ptrの型を間違っていただけだった

106 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 20:14:40 ]
これって変数名とかに全角文字がつかえるのだな。
  int 数値 = 0;
みたいに。
うっかり全角アルファベット混ぜたりしたら大変だな。





107 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 20:26:13 ]
それCLIでない方のC++でもできるよ
コンパイラが共通なんだから

108 名前:デフォルトの名無しさん mailto:sage [2010/11/11(木) 22:11:50 ]
>>106
今のパソコンて、ゼロに斜線が入らないから、うっかり

int 数値 = O;

とかしてしまうとやばいぜw

109 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 04:36:06 ]
どっかでOが定義済みでないと通らないだろ

110 名前:デフォルトの名無しさん mailto:sage [2010/11/12(金) 13:04:12 ]
Windows Mobile用のWM_GESTUREが入ったgesture.hは何を入れたら良いんですか?

Windows Mobile 6 Professional SDK Refresh.msiと
試しにVS2010EEを入れてみたけど
ダメでした

Windows Mobile 6 Professional SDK Refresh.msiは2環境でインストールして
いるのでインストーラがコケたとかでは無さそうです
定義だけなのでGoogle Codeとかでも良いのですが、MS系は上手く手に入りません。

くだすれですがよろしくお願いします。

111 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 12:22:30 ]
queue<array<String^>^ > queue_dwnload;
こう宣言すると
System.ArgumentException' の初回例外が発生しました。
とイミディエイトウィンドウにメッセージが出るんだけど
宣言の仕方どこが間違ってますか?

112 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 17:42:15 ]
つ STL/CLI

#include <cliext/queue>
using namespace System;

cliext::queue<array<String^>^ > queue_dwnload;


113 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 18:21:47 ]
すまん書き足りなかった、インクルードはちゃんとしてて
プログラムも正常に動作してます

それでもう少しシンプルなコードで試してみたんだけど
VS2008で新規作成、プロジェクト、CLRのwindowsフォームアプリケーション
のテンプレートでプロジェクトを作成して
#include <cliext/queue>を追加
~Form1(){}の下あたりに
cliext::queue<array<String^>^ > queue_dwnload;を追加
デバッグ実行する
これだけでメッセージが出ます、キューの宣言は間違ってないみたいだけど
何が原因なんだろう?

114 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 19:06:11 ]
VS2010にしてしまっているので再現できないが、
~Form1()と同じprotectedには出来ないのかコンパイル時に警告がでる。
privateにしたらどう?

private: cliext::queue<array<String^>^ > queue_dwnload;


115 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 22:52:09 ]
private:付けてもだめでした

116 名前:デフォルトの名無しさん mailto:sage [2010/11/14(日) 14:34:28 ]
とりあえず問題の切り分けだな。
まずコンパイルが警告なしで通るかどうか。
通るならデバッグ実行とデバッグなし実行で差があるかどうか。
別のPCでも再現するかどうか。



117 名前:デフォルトの名無しさん mailto:sage [2010/12/02(木) 11:27:46 ]
使用環境:VS2008 Professional Edition
プロジェクト:CLR クラスライブラリ
目的:コピーコンストラクタ、代入演算子を潰したい

エラーの出ないコード。
 ref class Hoge sealed {
  private:
   Hoge % operator=( Hoge const % rhd ) { return *this; } ;
   Hoge( Hoge const % src ) {} ;
 }

実装したいコード。
 ref class Hoge sealed {
  private:
   Hoge % operator=( Hoge const % ) ; // error LNK2020 未解決のトークン(06000001) Hoge::op_Assign
   Hoge( Hoge const % ) ; // error LNK2020 未解決のトークン(06000003) Hoge::ctor
 }

C++/CLIでメンバ関数の実装をせずに放置というのは可能でしょうか?

118 名前:デフォルトの名無しさん mailto:sage [2010/12/02(木) 18:43:31 ]
そもそもref classは定義しない限りコピーとか無理じゃなかったか

119 名前:デフォルトの名無しさん mailto:sage [2010/12/02(木) 19:44:11 ]
C#などから使わせるつもりなら演算子のオーバーロードは全部staticにしないといけないし
代入演算子やコピーコンストラクタはそもそもオーバーロードできないし
constも使えないし参照渡しや参照返しもダメ(そもそもref classだから無意味)
つかまずC#やるべき。.NETの常識が無さすぎ。

120 名前:117 mailto:sage [2010/12/02(木) 22:33:30 ]
>>118
そうなんですか、回答ありがとうござます。

>>119
回答ありがとうございます。
msdn.microsoft.com/ja-jp/library/sy1y3y1t(VS.80).aspx
このサンプルコードのコンパイルが通らなかったのですが、そもそもサンプルが間違ってるという事なのでしょうか?
あと、.NETの常識を学ぶのにオススメの書籍などあれば教えていただけると幸いです。


121 名前:デフォルトの名無しさん mailto:sage [2010/12/03(金) 11:24:33 ]
Lock に関係ない実装は省略して書いてるだけでしょ
間違ってると言うより、そこは問題とは関係ない部分なだけ

122 名前:117 mailto:sage [2010/12/03(金) 12:41:30 ]
>>121
回答ありがとうございます。
別途実装をするしか無いという事ですね。分かりました。

そうすると >>119 の回答から考えて、C#などから使わせるつもりが無いなら、
・演算子のオーバーロードはstaticにする必要はない
・代入演算子やコピーコンストラクタはオーバーロードできる
・constも使えて参照渡しや参照返しもOK
ということでしょうか?

123 名前:デフォルトの名無しさん mailto:sage [2010/12/03(金) 15:36:41 ]
C++/CLIではref classのメソッドにconstを付けられないから
C#やVBと相互運用しないとしてもconstパラメータは事実上役に立たない。

124 名前:デフォルトの名無しさん mailto:sage [2010/12/04(土) 13:39:31 ]
趣旨がわからないね。
C++スタイルでやりたいだけなら、そもそもC++/CLI 使う必要性がないんでない?

125 名前:117 mailto:sage [2010/12/04(土) 14:33:18 ]
>>123
回答ありがとうございます。
Hoge % operator=( Hoge % arg ) { 代入処理の実装 } ;
これだと代入元が書き換えられそうで気持ち悪いですけど、そういう流儀なのですね。分かりました。

>>124
>>122 の質問に関しては元々あった疑問ではありません。
>>119 の解答に書かれている内容に関しての事実確認です。
趣旨に関してはスレ違いだと思いますので書きません。

126 名前:デフォルトの名無しさん mailto:sage [2010/12/04(土) 14:48:36 ]
%もいらん
ref classだから常にポインタ渡し



127 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 13:03:24 ]
>>124
MSのサンプルだか自動生成されるコードだかで、
あんな風にrefクラス上でC++っぽいことをやっているものを見た覚えがある。
元の質問者のコードもそういうのに影響されたのではないかと思う。

128 名前:デフォルトの名無しさん mailto:age [2010/12/05(日) 14:36:18 ]
private ref struct A{
UInt32 data[5];
};
これがコンパイル通らないんだけど、
array<UInt32>^ data;とかにしていちいちgcnewするしかないんですか?
データ宣言するだけのためにコードなんて書きたくないので、うまい解決法お願いします。


129 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 15:20:34 ]
うん、array<UInt32>^にしてコンストラクタ書くしかないんではないかなあ。

130 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 21:27:52 ]
C#では構造体でstackallocが使えるからvalue classならいけるだろうと思ったけど無理なのね
この手の機能でC#に負けてどうする

131 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 21:36:00 ]
CStringを使うには何をインクルードすればよいの?
atlstr.h、atlbase.h、atlapp.hは入れてるけどコンパイルとまる

132 名前:デフォルトの名無しさん [2010/12/06(月) 21:09:33 ]
VC++2010 ExpressEditionです。

System::windows::form::timer で一秒ごとにlabel->textを更新していますが(要は時計です)
最小化から復帰するとlabel->textが更新されなくなります、何故でしょう。

133 名前:デフォルトの名無しさん mailto:sage [2010/12/07(火) 22:12:40 ]
最小化したときにとめたタイマーを元に戻すんだキバヤシ

134 名前:デフォルトの名無しさん mailto:sage [2010/12/08(水) 00:35:19 ]
そもそもUI用のタイマで時計を作るな
MSDNにもはっきりそう書いてあるだろ

135 名前:デフォルトの名無しさん [2010/12/08(水) 00:44:46 ]
>>133

故意に止めるようなことはしていないんですが、そういう仕様なんでしょうか?

136 名前:デフォルトの名無しさん [2010/12/08(水) 00:46:00 ]
>>134

えぇぇぇぇぇ。時間分解能が悪いとかあの辺ですか!ヽ(´Д`;)ノアゥ...
スレッドタイマークラスとかに変えます。ご教授ありがとうございます。



137 名前:デフォルトの名無しさん mailto:sage [2010/12/08(水) 00:57:53 ]
MS公式のガイドラインかなんかで「System.Windows.Forms.Timerで時計を作らないでください」って無かったっけ?
どこだったか忘れたけど

138 名前:デフォルトの名無しさん mailto:sage [2010/12/08(水) 11:59:01 ]
一番使い易いところにあるのに、一番性能悪いとかひでー話だよな
俺も最初使ってみて混乱した

139 名前:デフォルトの名無しさん mailto:sage [2010/12/08(水) 14:19:36 ]
使い方も知らずに使うとか・・・

140 名前:デフォルトの名無しさん mailto:sage [2010/12/09(木) 00:12:13 ]
VS2005です。
C++/CLIでラップしたネイティブのライブラリから例外が発生して、
C++/CLI側でcatchした時に、
ネイティブ側のインスタンスのデストラクタが呼ばれません。
これはバグと考えて良いのでしょうか?

VC++2010 expressでは普通に呼ばれたので・・

141 名前:デフォルトの名無しさん [2010/12/09(木) 03:14:40 ]
>>132です。

あれからいろいろいじりまくっていたんだけど、どうもフォームの透過色(TransparencyKey)が特定の色の場合
この問題が発生しているようです。引き続き調べてみます。

142 名前:140 [2010/12/10(金) 18:48:44 ]
全く相手にされてないようですが、
解決したので適当に報告しときます。

とりあえず、ネイティブのライブラリオプションを
/EHscから/EHaに変更することで、デストラクタが呼ばれるようになりました。

どうやらオプションの違いでABIに互換性が無くなり、
例外をハンドルできても、その後のアンワインディングを正常に実行できていなかったようです。

デフォルトのオプション設定だと上記のような状態になるので、
自分みたいに知らずに組んでる人はメモリリークし放題ですね。

143 名前:デフォルトの名無しさん mailto:sage [2011/01/11(火) 22:48:33 ]
C++/CLIでSystem::Actionって使えないの?
event Action^ Foo;
とやると
エラー1error C2955: 'System::Action' : クラス ジェネリック を使用するには ジェネリック 引数リストが必要です
って出てくる…


144 名前:デフォルトの名無しさん mailto:sage [2011/01/11(火) 22:54:33 ]
Action<T>はmscorlib.dllだがそれ以外はSystem.Core.dllだ

145 名前:デフォルトの名無しさん mailto:sage [2011/01/11(火) 22:57:47 ]
>>144
ありがとう…
おまえそんなところにいたのか…

146 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 21:22:18 ]
聞きたいんだけどスレ住人はVC2010でC++/CLI書いてる?
それともインテリセンス使うために2008書いてる?
それともC++/CLI書かない?



147 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 21:30:17 ]
C++/CLI書かない…けど次の案件がVS2010指定でネイティブDLL呼び出す必要があるから
書かざるを得なくなるかもしれなくてちょっと憂鬱

148 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:28:46 ]
.NET用言語で一番の糞言語だからね>C++/CLI

149 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:49:37 ]
>>148
C++自体が言語として糞だから仕方がない。
それと互換性保ちながらここまで実現したということを考えると、かなりすごいと思う。

150 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:50:52 ]
互換性?ねーよ。

151 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:54:50 ]
>>150
え。それは、今では使うのは好ましくないとされているレガシー関数群をいまだにお使いになられているからではないですか?

152 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 11:47:30 ]
CとC++に互換性があるとは言わないだろ
CLIの部分については互換性ゼロなんだから

153 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 11:51:41 ]
>>152
> CとC++に互換性があるとは言わないだろ
それは上位互換ありでしょ。完全ではないけれども。


154 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 12:50:45 ]
boostを完璧にコンパイルできないだろとか言い始めるのかと思ったら
斜め上をいく馬鹿だったか

155 名前:デフォルトの名無しさん [2011/02/08(火) 22:27:38 ]
初心者です。
ストリップメニューを開くと5個ぐらい項があって
3つチェックされているとして、その3という数字を取りたいのですが
どうすれば良いでしょうか?
開く部分の変数はStripMenuItem1です。
for(int = 0;i<StripMenuItem1->項目数;i++){if(StripMenuItem1->子項目->checked == true){temp++;}}
みたいなのはありますでしょうか?どうすれば良いでしょうか?よろしくおねがいします

156 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 22:55:33 ]
自前で数えろよ、毎回書くのがいやなら関数にしとけ。



157 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 23:02:04 ]
>>155
StripMenuItem1.Itemsプロパティで子が全て取得できる
言っちゃ悪いけどそういう意味での初心者がC++/CLIなんか使うもんじゃない
先にC#覚えて

158 名前:デフォルトの名無しさん [2011/02/08(火) 23:03:11 ]
>>156
レスありがとうございます
申し訳ありません。理解できません
何か関数があるのでしょうか?
自前で数えるといっても、2個チェックのときは2と自動で取ってこれるようにしたいのです。
そういえば
if(項の変数->checked == true){temp++;}
を何行も書けばいいだけですね。ありがとうございました!


159 名前:デフォルトの名無しさん [2011/02/08(火) 23:03:52 ]
>>157
ありがとうございました!

160 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 23:11:25 ]
ときどき勘違いした可哀想な子が紛れ込んでくるな
>>21>>42はまだC++/CLI使ってるんだろうか

161 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 00:53:00 ]
次スレでは「初心者用」を消して、

> - C++プログラミング
> - .NETプログラミング (C#, VB.NET, etc.)
>
> に不自由する方はお引き取りください

とか若干きつめに書いておけばいいじゃね?

何年先になるかは分からんけどw
4,5年ぐらい?ww

162 名前:デフォルトの名無しさん [2011/02/09(水) 06:13:09 ]
WCHAR f[] = aToolStripMenuItem->Text->ToCharArray();
cli::array<Type,dimension> ^' から 'WCHAR []' に変換できません。
->ToCharArray();でWCHARが帰ると思っていたのですがなぜでしょうか?どうすれば良いですか?

163 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 06:31:17 ]
そのWCHAR[]をどうしたいかによる

164 名前:デフォルトの名無しさん [2011/02/09(水) 06:33:29 ]
>>163
wcscpyしたいです。
というか元々wcscpyの引数に入れるつもりでしたができませんでした。

165 名前:デフォルトの名無しさん [2011/02/09(水) 07:06:40 ]
>>163
ちなみに、第二引数にその->TEXTの文を入れて
別に用意した第一引数のWCHAR[3][]とかに入れたいのです

166 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 07:48:58 ]
>>161
もともとは初心者お断りスレもあったが、話題があまりなくて落ちた
>dat落ち姉妹スレ
>C++/CLI part3




167 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 09:38:59 ]
このスレでもC++、.NETの初心者は対象外だけどな

168 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 11:16:29 ]
>162
文字列操作はこれがひっかかったぞ
ttp://vene.wankuma.com/prog/CppCli_strings.aspx






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<122KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef