[表示 : 全て 最新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

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

169 名前:デフォルトの名無しさん [2011/02/09(水) 11:18:17 ]
>>168
サンクス
おせーよ

170 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 15:36:36 ]
C++と.NETの両方を極めないとCLIは使いこなせないからな

171 名前:デフォルトの名無しさん mailto:sage [2011/02/12(土) 16:44:50 ]
Express EditionでもC#プロジェクトと同じソリューションに入れられればいいのになあ
VCのExpress Editionが入門者向けというより達人の縛りプレイ用になってるじゃないか



172 名前:デフォルトの名無しさん mailto:sage [2011/02/12(土) 17:53:40 ]
CLI使わないという選択肢はないのかw

173 名前:デフォルトの名無しさん mailto:sage [2011/02/12(土) 18:35:17 ]
そんな選択肢があったらこのスレにいない

174 名前:デフォルトの名無しさん mailto:sage [2011/02/13(日) 04:23:39 ]
>>171
金払え

175 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 09:47:29 ]
ダイアログで値を入力させて、その値を親ウィンドウで処理したい場合に
どうやって値の受け渡しをすればいいの?
親にpublic関数を用意して呼び出すのが簡単なわけだけど
この.hファイルに親の.hファイルをインクルードすると子のデザイナが壊れる
子ダイアログで親の形を認識させる手段がない

176 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 10:00:22 ]
子のプロパティを公開して親からアクセスすればいいんじゃねえの?

177 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 16:30:00 ]
比較関数を書く形式で、リスト(cliext::list)をクラスのメンバで
ソートするにはどうしたら良いでしょうか?
こんな感じじゃないかと思うのですが
「関数呼び出しには引数リストがありません。
メンバへのポインタを作成するために '&Test::Form1::less' を使用してください」
とエラーが出ます
以下コードを簡略化して書いてます

//クラスTest
ref class Test
{
public:
DateTime date;
Test(void){};
};

//比較関数
bool less(Test^ lhs, Test^ rhs)
{
return lhs->date < rhs->date;
}

//リストの作成
list<Test^> list_item;
Test^ item = gcnew Test();
list_item.push_back(item);//(以下省略

//ソートする
list_item.sort(less);

178 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 17:09:32 ]
試してないけど、static にして Test::less じゃね?

179 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 17:41:53 ]
レスありがとうございます
Form1クラスの上で定義したらできました
いまいちよくわからないですが
これからじっくり理由を考えて見たいと思います、感謝

180 名前:デフォルトの名無しさん mailto:sage [2011/02/20(日) 21:49:54.49 ]
VC++のスレでこちらの方がふさわしいのではないかと言うことで移ってきました。

 VC++2010 Expressでフォームからマウスが外れているときはフォームの透明度を
あげる(薄くする)と言うプログラムを組んでいます。フォームのMouseLeaveイベントと、
MouseEnterイベント発生時にOpacityプロパティを変えることで実現を目論んだのです
が、ウインドウの外枠(サイズを変えるときにドラッグする部分や、上部のウインドウ名
が書かれている部分)にマウスがあると、MouseLeaveイベントが発生して、薄くなって
しまいます。もちろん、ここではたとえ、フォーム外側から移動してきてもMouseEnter
イベントは起きません。
 フォームから完全にマウスカーソルがそれた時のみ透明度を高めたいのですが、
どういうイベントを用いればよいんでしょうか?

181 名前:デフォルトの名無しさん mailto:sage [2011/02/21(月) 01:14:11.85 ]
で、その質問内容のどこがC++/CLIに関係しているんだ?



182 名前:180 mailto:sage [2011/02/21(月) 07:06:34.79 ]
ってことは、.Net Frameworkのスレ探します。

183 名前:180 mailto:sage [2011/02/21(月) 07:08:31.22 ]
.net Framework関連のスレって見つからないんですが、どこが適切でしょう。
すみません。

184 名前:デフォルトの名無しさん mailto:sage [2011/02/21(月) 07:51:25.56 ]
ふらっとあたりで聞けばいい

185 名前:デフォルトの名無しさん mailto:sage [2011/02/26(土) 23:54:49.36 ]
ref classのメンバー変数にID2D1SolidColorBrush*のようなものがある
template <class T> inline void SafeRelease(T *ppT)
{
unsigned long refCount;
if (*ppT)
{
refCount = (*ppT)->Release();
*ppT = NULL;
}
}
にID2D1SolidColorBrush*のポインターを渡すことが出来ないからpin_ptrで渡してたんだが、いい加減書くのがめんどくさくなってきた
スマートに処理しようと思い、template <class T> inline void SafeRelease(T *%ppT)というパラメーターの関数を定義したんだが、こいつへの渡し方がわからない
誰か教えてくれまいか


186 名前:デフォルトの名無しさん mailto:sage [2011/02/27(日) 02:13:39.66 ]
あるプロセスをオープンしようとしてます
読み取り専用で試したが結果は同じ
CLIとしてコンパイルしたWindowsアプリからOpenProcessを呼び出すとフル権限で開ける
C++としてコンパイルしたコンソールアプリからはOpenProcess読み取り専用でもアクセス拒否される
OSはWindows7 64bit
内部のことは分からないですが、OpenProcessは同じ標準process.h内のものを使ってると思う
少なくともソース上ではそういう記述をしてますがコンパイラが何をしてるかまでは定かじゃないです
大きな違いはコンソールアプリであることですが、それが拒否の原因になるんでしょうか?

187 名前:デフォルトの名無しさん [2011/02/27(日) 18:39:56.37 ]
VC2010を使用しています。
テキストボックスに文字が入力され、エンターを押されたら動作する処理を行いたいのですが、
TextChangedイベントに
if(TextBox1->Text->EndsWith("\r\n"))
では、認識出来ないのですが、どのようにすればよろしいのでしょうか?

よろしくお願いします。


188 名前:デフォルトの名無しさん mailto:sage [2011/02/27(日) 19:14:15.81 ]
フレームワークの話しはスレ違い

189 名前:デフォルトの名無しさん [2011/02/27(日) 19:44:49.91 ]
フレームワークの話はどこですれば良いのでしょうか?

190 名前:デフォルトの名無しさん mailto:sage [2011/02/27(日) 19:48:31.21 ]
C#の質問にして、ふらっとC#で聞くといい

191 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 15:45:27.41 ]
>185
com::ptr で保持して、リリース処理はそっちで対応しちゃあかんの?



192 名前:185 mailto:sage [2011/02/28(月) 18:59:52.28 ]
>>191
ref classにはcom::ptrはおけない思う

193 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 19:01:42.54 ]
>>192
すまん。
CComPtrと勘違いしてた
com:ptrはCLRでも使えるのか

194 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 19:28:37.85 ]
>193
それ用のクラスだぜ
あとは .net Framework の System::Runtime::InteropServices::SafeHandle を実装したら?

195 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 20:58:29.72 ]
DirectXのリソースの解放にSafeHandleは使えないんじゃなかったっけ
最近のは知らんけど

196 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 23:42:18.77 ]
>187
KeyPress

197 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 00:17:52.54 ]
>195
詳しく

198 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 01:40:02.26 ]
Direct3D自体の作成/解放が1スレッドに限定されるのに対し
ファイナライザスレッドでどーのこーのみたいな話だったか

使えないというか使う意味がない、みたいな

199 名前:デフォルトの名無しさん [2011/03/10(木) 18:48:24.24 ]
printfとか普通に書いたとき、
なんでprintfがアンマネージのコードって
コンパイラは理解できるの?

それらしい印になるようなキーワードを
特に書いてないような気がするのだが?

200 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 18:56:54.84 ]
内部的には #pragma managed や unmanaged 指定がされてんじゃね?
#include か #using かで切り分けてるんだと思うけど

201 名前:デフォルトの名無しさん [2011/03/15(火) 00:19:49.85 ]
失礼します。

Form1からForm2を開き、Form2を表示した状態でForm1のテキストボックスにフォーカスを合わせたいのですが、何か良い方法はありますでしょうか?
Form2のShownイベントで、Form1->TextBox1->Forcus();を実行してみましたが、Form1が見つかりませんでした。
よろしくお願いします。



202 名前:デフォルトの名無しさん mailto:sage [2011/03/15(火) 14:20:33.94 ]
見つかりませんでしたじゃなくて
見つかる様にするんだよ。
作成時にインスタンス渡すとか、間を取り持つ作るとか

203 名前:201 [2011/03/23(水) 22:44:49.12 ]
imagingsolution.blog107.fc2.com/blog-entry-109.html
ここを参考に、Ownerを指定してもダメでした。

と、言うよりサンプル通りに作ってみても
1>d:\vc2010\test\form2test\form2test\Form2.h(60): error C2039: 'Form2_Load' : 'Form2Test::Form2' のメンバーではありません。
1> d:\vc2010\test\form2test\form2test\Form2.h(15) : 'Form2Test::Form2' の宣言を確認してください。
1>d:\vc2010\test\form2test\form2test\Form2.h(60): error C2065: 'Form2_Load' : 定義されていない識別子です。
(以下略)
と、なってしまいました。

Form2.hの宣言
this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 273);
this->Name = L"Form2";
this->Text = L"Form2";
this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load);
this->ResumeLayout(false);

Form2.cppにて
#include "Form1.h"
using namespace Form2Test;

System::Void Form2::Form2_Load(System::Object^ sender, System::EventArgs^ e) {
Form1^ PForm;
if(this->Owner != nullptr){
PForm = static_cast<Form1^>(this->Owner);
}
}

この記述では間違っているのでしょうか?VC2010を使用してます。
よろしくお願いします。

204 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 02:14:35.75 ]
本当にForm2はグローバル名前空間なのか?

とりあえずヒントだけ出したけど、C++、.NET、プログラミングの基礎にあたる内容はスレチだから返答は不要
というか、C++/CLIはコンパイル可能なコードすら書けないようなプログラミング初心者が使うものじゃない


205 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 04:38:21.64 ]
VC++2010&CLIで4.0以前(4.0は含まない)のNETを使う方法はありますか?
MSDNには3.5を利用するには2008SP1を入れろとかありましたが
NETのバージョンごとに入れるのはさすがに無駄すぎるので。

206 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 11:57:27.41 ]
msdn.microsoft.com/ja-jp/library/ff770576.aspx
プロジェクトファイルをテキストエディタで編集しろということらしい
C++/CLIで作った混合アセンブリはCLR2(.NET2.0-3.5)向けにコンパイルすると
CLR4では動作しなくなるので注意
インテリセンスも削られてるのでC++/CLIなら2008で作業するほうがいいよ

207 名前:デフォルトの名無しさん mailto:sage [2011/03/24(木) 20:41:15.80 ]
>>206
msdn.microsoft.com/ja-jp/library/47w1hdab.aspx
こちらのページを読んだところ
2010は4.0だけ、2008SP1なら3.5だけなのかと思ってしまったのですが
2008SP1は2.0〜3.5まで扱えるんですね
2008を入れることにします
ありがとうございました

208 名前:デフォルトの名無しさん mailto:sage [2011/04/01(金) 22:50:53.88 ]
質問です

画面を表示させ、ボタンを押したら表示されている画面をbitmapイメージとして保存(出来れば印刷も)したいのですが、
そういう事は可能なのでしょうか?
サンプルソース等探してみたのですが見つからなくて行き詰ってしまいました。

209 名前:デフォルトの名無しさん mailto:sage [2011/04/01(金) 22:54:32.68 ]
C# スクリーンショット でググれ
C#だぞ。C++/CLIじゃないぞ。

210 名前:デフォルトの名無しさん mailto:sage [2011/04/01(金) 22:57:17.22 ]
>>209
なるほど、C#で調べれば良かったんですね。。
自身に[Alt]+[Print Screen]を送れば良かったんですね
ありがとうございます

211 名前:デフォルトの名無しさん [2011/04/02(土) 12:02:12.18 ]
フォーム上にメニューバーを追加したいんですが
どういうソース書けばいいんでしょうか?




212 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 12:06:00.79 ]
C# MenuStrip でググれ
C#だぞ。C++/CLIじゃないぞ。

213 名前:デフォルトの名無しさん [2011/04/02(土) 12:31:38.06 ]
サンクス






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

前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