おそらく、.NET開発でデファクトスタンダードに最も近いであろう
C++/CLIについて語ろうぜ!
このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。
.NETのクラスライブラリの使い方といった質問は Visual Studioスレにお願いします。
前スレッドはこちら
くだすれC++/CLI(初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1142144110/l1
dat落ち姉妹スレ
C++/CLI part3
http://pc12.2ch.net/test/read.cgi/tech/1206447234/l1
http://pc11.2ch.net/test/read.cgi/tech/1142147319/l1
http://pc8.2ch.net/test/read.cgi/tech/1126450441/l1
managed C++ やろうぜ!! 002
http://pc8.2ch.net/test/read.cgi/tech/1139043535/l1
探検
くだすれC++/CLI(初心者用)part2
■ このスレッドは過去ログ倉庫に格納されています
2010/03/15(月) 09:41:19
102デフォルトの名無しさん
2010/11/03(水) 04:25:15 D言語よりマシ。
103デフォルトの名無しさん
2010/11/03(水) 16:45:49 Z言語になるころには
なんとなくこんな感じ、って思い描いたものが
1行で組みあがるくらいに
なるわけねぇ
なんとなくこんな感じ、って思い描いたものが
1行で組みあがるくらいに
なるわけねぇ
104デフォルトの名無しさん
2010/11/03(水) 17:28:32 ref classのメンバーに構造体がある場合、その構造体のポインターはどうやって取得すればいいの?
pin_ptr<SCRIPT_STRING_ANALYSIS*> pssa = &(this->構造体型の変数);
こういう風にしてもうまくいかないんだが
pin_ptr<SCRIPT_STRING_ANALYSIS*> pssa = &(this->構造体型の変数);
こういう風にしてもうまくいかないんだが
105デフォルトの名無しさん
2010/11/03(水) 17:41:24106デフォルトの名無しさん
2010/11/11(木) 20:14:40 これって変数名とかに全角文字がつかえるのだな。
int 数値 = 0;
みたいに。
うっかり全角アルファベット混ぜたりしたら大変だな。
int 数値 = 0;
みたいに。
うっかり全角アルファベット混ぜたりしたら大変だな。
107デフォルトの名無しさん
2010/11/11(木) 20:26:13 それCLIでない方のC++でもできるよ
コンパイラが共通なんだから
コンパイラが共通なんだから
108デフォルトの名無しさん
2010/11/11(木) 22:11:50109デフォルトの名無しさん
2010/11/12(金) 04:36:06 どっかでOが定義済みでないと通らないだろ
110デフォルトの名無しさん
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系は上手く手に入りません。
くだすれですがよろしくお願いします。
Windows Mobile 6 Professional SDK Refresh.msiと
試しにVS2010EEを入れてみたけど
ダメでした
Windows Mobile 6 Professional SDK Refresh.msiは2環境でインストールして
いるのでインストーラがコケたとかでは無さそうです
定義だけなのでGoogle Codeとかでも良いのですが、MS系は上手く手に入りません。
くだすれですがよろしくお願いします。
111デフォルトの名無しさん
2010/11/13(土) 12:22:30 queue<array<String^>^ > queue_dwnload;
こう宣言すると
System.ArgumentException' の初回例外が発生しました。
とイミディエイトウィンドウにメッセージが出るんだけど
宣言の仕方どこが間違ってますか?
こう宣言すると
System.ArgumentException' の初回例外が発生しました。
とイミディエイトウィンドウにメッセージが出るんだけど
宣言の仕方どこが間違ってますか?
112デフォルトの名無しさん
2010/11/13(土) 17:42:15 つ STL/CLI
#include <cliext/queue>
using namespace System;
cliext::queue<array<String^>^ > queue_dwnload;
#include <cliext/queue>
using namespace System;
cliext::queue<array<String^>^ > queue_dwnload;
113デフォルトの名無しさん
2010/11/13(土) 18:21:47 すまん書き足りなかった、インクルードはちゃんとしてて
プログラムも正常に動作してます
それでもう少しシンプルなコードで試してみたんだけど
VS2008で新規作成、プロジェクト、CLRのwindowsフォームアプリケーション
のテンプレートでプロジェクトを作成して
#include <cliext/queue>を追加
~Form1(){}の下あたりに
cliext::queue<array<String^>^ > queue_dwnload;を追加
デバッグ実行する
これだけでメッセージが出ます、キューの宣言は間違ってないみたいだけど
何が原因なんだろう?
プログラムも正常に動作してます
それでもう少しシンプルなコードで試してみたんだけど
VS2008で新規作成、プロジェクト、CLRのwindowsフォームアプリケーション
のテンプレートでプロジェクトを作成して
#include <cliext/queue>を追加
~Form1(){}の下あたりに
cliext::queue<array<String^>^ > queue_dwnload;を追加
デバッグ実行する
これだけでメッセージが出ます、キューの宣言は間違ってないみたいだけど
何が原因なんだろう?
114デフォルトの名無しさん
2010/11/13(土) 19:06:11 VS2010にしてしまっているので再現できないが、
~Form1()と同じprotectedには出来ないのかコンパイル時に警告がでる。
privateにしたらどう?
private: cliext::queue<array<String^>^ > queue_dwnload;
~Form1()と同じprotectedには出来ないのかコンパイル時に警告がでる。
privateにしたらどう?
private: cliext::queue<array<String^>^ > queue_dwnload;
115デフォルトの名無しさん
2010/11/13(土) 22:52:09 private:付けてもだめでした
116デフォルトの名無しさん
2010/11/14(日) 14:34:28 とりあえず問題の切り分けだな。
まずコンパイルが警告なしで通るかどうか。
通るならデバッグ実行とデバッグなし実行で差があるかどうか。
別のPCでも再現するかどうか。
まずコンパイルが警告なしで通るかどうか。
通るならデバッグ実行とデバッグなし実行で差があるかどうか。
別のPCでも再現するかどうか。
117デフォルトの名無しさん
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でメンバ関数の実装をせずに放置というのは可能でしょうか?
プロジェクト: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デフォルトの名無しさん
2010/12/02(木) 18:43:31 そもそもref classは定義しない限りコピーとか無理じゃなかったか
119デフォルトの名無しさん
2010/12/02(木) 19:44:11 C#などから使わせるつもりなら演算子のオーバーロードは全部staticにしないといけないし
代入演算子やコピーコンストラクタはそもそもオーバーロードできないし
constも使えないし参照渡しや参照返しもダメ(そもそもref classだから無意味)
つかまずC#やるべき。.NETの常識が無さすぎ。
代入演算子やコピーコンストラクタはそもそもオーバーロードできないし
constも使えないし参照渡しや参照返しもダメ(そもそもref classだから無意味)
つかまずC#やるべき。.NETの常識が無さすぎ。
120117
2010/12/02(木) 22:33:30 >>118
そうなんですか、回答ありがとうござます。
>>119
回答ありがとうございます。
http://msdn.microsoft.com/ja-jp/library/sy1y3y1t(VS.80).aspx
このサンプルコードのコンパイルが通らなかったのですが、そもそもサンプルが間違ってるという事なのでしょうか?
あと、.NETの常識を学ぶのにオススメの書籍などあれば教えていただけると幸いです。
そうなんですか、回答ありがとうござます。
>>119
回答ありがとうございます。
http://msdn.microsoft.com/ja-jp/library/sy1y3y1t(VS.80).aspx
このサンプルコードのコンパイルが通らなかったのですが、そもそもサンプルが間違ってるという事なのでしょうか?
あと、.NETの常識を学ぶのにオススメの書籍などあれば教えていただけると幸いです。
121デフォルトの名無しさん
2010/12/03(金) 11:24:33 Lock に関係ない実装は省略して書いてるだけでしょ
間違ってると言うより、そこは問題とは関係ない部分なだけ
間違ってると言うより、そこは問題とは関係ない部分なだけ
122117
2010/12/03(金) 12:41:30123デフォルトの名無しさん
2010/12/03(金) 15:36:41 C++/CLIではref classのメソッドにconstを付けられないから
C#やVBと相互運用しないとしてもconstパラメータは事実上役に立たない。
C#やVBと相互運用しないとしてもconstパラメータは事実上役に立たない。
124デフォルトの名無しさん
2010/12/04(土) 13:39:31 趣旨がわからないね。
C++スタイルでやりたいだけなら、そもそもC++/CLI 使う必要性がないんでない?
C++スタイルでやりたいだけなら、そもそもC++/CLI 使う必要性がないんでない?
125117
2010/12/04(土) 14:33:18126デフォルトの名無しさん
2010/12/04(土) 14:48:36 %もいらん
ref classだから常にポインタ渡し
ref classだから常にポインタ渡し
127デフォルトの名無しさん
2010/12/05(日) 13:03:24 >>124
MSのサンプルだか自動生成されるコードだかで、
あんな風にrefクラス上でC++っぽいことをやっているものを見た覚えがある。
元の質問者のコードもそういうのに影響されたのではないかと思う。
MSのサンプルだか自動生成されるコードだかで、
あんな風にrefクラス上でC++っぽいことをやっているものを見た覚えがある。
元の質問者のコードもそういうのに影響されたのではないかと思う。
128デフォルトの名無しさん
2010/12/05(日) 14:36:18 private ref struct A{
UInt32 data[5];
};
これがコンパイル通らないんだけど、
array<UInt32>^ data;とかにしていちいちgcnewするしかないんですか?
データ宣言するだけのためにコードなんて書きたくないので、うまい解決法お願いします。
UInt32 data[5];
};
これがコンパイル通らないんだけど、
array<UInt32>^ data;とかにしていちいちgcnewするしかないんですか?
データ宣言するだけのためにコードなんて書きたくないので、うまい解決法お願いします。
129デフォルトの名無しさん
2010/12/05(日) 15:20:34 うん、array<UInt32>^にしてコンストラクタ書くしかないんではないかなあ。
130デフォルトの名無しさん
2010/12/05(日) 21:27:52 C#では構造体でstackallocが使えるからvalue classならいけるだろうと思ったけど無理なのね
この手の機能でC#に負けてどうする
この手の機能でC#に負けてどうする
131デフォルトの名無しさん
2010/12/05(日) 21:36:00 CStringを使うには何をインクルードすればよいの?
atlstr.h、atlbase.h、atlapp.hは入れてるけどコンパイルとまる
atlstr.h、atlbase.h、atlapp.hは入れてるけどコンパイルとまる
132デフォルトの名無しさん
2010/12/06(月) 21:09:33 VC++2010 ExpressEditionです。
System::windows::form::timer で一秒ごとにlabel->textを更新していますが(要は時計です)
最小化から復帰するとlabel->textが更新されなくなります、何故でしょう。
System::windows::form::timer で一秒ごとにlabel->textを更新していますが(要は時計です)
最小化から復帰するとlabel->textが更新されなくなります、何故でしょう。
133デフォルトの名無しさん
2010/12/07(火) 22:12:40 最小化したときにとめたタイマーを元に戻すんだキバヤシ
134デフォルトの名無しさん
2010/12/08(水) 00:35:19 そもそもUI用のタイマで時計を作るな
MSDNにもはっきりそう書いてあるだろ
MSDNにもはっきりそう書いてあるだろ
135デフォルトの名無しさん
2010/12/08(水) 00:44:46136デフォルトの名無しさん
2010/12/08(水) 00:46:00137デフォルトの名無しさん
2010/12/08(水) 00:57:53 MS公式のガイドラインかなんかで「System.Windows.Forms.Timerで時計を作らないでください」って無かったっけ?
どこだったか忘れたけど
どこだったか忘れたけど
138デフォルトの名無しさん
2010/12/08(水) 11:59:01 一番使い易いところにあるのに、一番性能悪いとかひでー話だよな
俺も最初使ってみて混乱した
俺も最初使ってみて混乱した
139デフォルトの名無しさん
2010/12/08(水) 14:19:36 使い方も知らずに使うとか・・・
140デフォルトの名無しさん
2010/12/09(木) 00:12:13 VS2005です。
C++/CLIでラップしたネイティブのライブラリから例外が発生して、
C++/CLI側でcatchした時に、
ネイティブ側のインスタンスのデストラクタが呼ばれません。
これはバグと考えて良いのでしょうか?
VC++2010 expressでは普通に呼ばれたので・・
C++/CLIでラップしたネイティブのライブラリから例外が発生して、
C++/CLI側でcatchした時に、
ネイティブ側のインスタンスのデストラクタが呼ばれません。
これはバグと考えて良いのでしょうか?
VC++2010 expressでは普通に呼ばれたので・・
141デフォルトの名無しさん
2010/12/09(木) 03:14:40142140
2010/12/10(金) 18:48:44 全く相手にされてないようですが、
解決したので適当に報告しときます。
とりあえず、ネイティブのライブラリオプションを
/EHscから/EHaに変更することで、デストラクタが呼ばれるようになりました。
どうやらオプションの違いでABIに互換性が無くなり、
例外をハンドルできても、その後のアンワインディングを正常に実行できていなかったようです。
デフォルトのオプション設定だと上記のような状態になるので、
自分みたいに知らずに組んでる人はメモリリークし放題ですね。
解決したので適当に報告しときます。
とりあえず、ネイティブのライブラリオプションを
/EHscから/EHaに変更することで、デストラクタが呼ばれるようになりました。
どうやらオプションの違いでABIに互換性が無くなり、
例外をハンドルできても、その後のアンワインディングを正常に実行できていなかったようです。
デフォルトのオプション設定だと上記のような状態になるので、
自分みたいに知らずに組んでる人はメモリリークし放題ですね。
143デフォルトの名無しさん
2011/01/11(火) 22:48:33 C++/CLIでSystem::Actionって使えないの?
event Action^ Foo;
とやると
エラー1error C2955: 'System::Action' : クラス ジェネリック を使用するには ジェネリック 引数リストが必要です
って出てくる…
event Action^ Foo;
とやると
エラー1error C2955: 'System::Action' : クラス ジェネリック を使用するには ジェネリック 引数リストが必要です
って出てくる…
144デフォルトの名無しさん
2011/01/11(火) 22:54:33 Action<T>はmscorlib.dllだがそれ以外はSystem.Core.dllだ
145デフォルトの名無しさん
2011/01/11(火) 22:57:47146デフォルトの名無しさん
2011/02/05(土) 21:22:18 聞きたいんだけどスレ住人はVC2010でC++/CLI書いてる?
それともインテリセンス使うために2008書いてる?
それともC++/CLI書かない?
それともインテリセンス使うために2008書いてる?
それともC++/CLI書かない?
147デフォルトの名無しさん
2011/02/05(土) 21:30:17 C++/CLI書かない…けど次の案件がVS2010指定でネイティブDLL呼び出す必要があるから
書かざるを得なくなるかもしれなくてちょっと憂鬱
書かざるを得なくなるかもしれなくてちょっと憂鬱
148デフォルトの名無しさん
2011/02/05(土) 22:28:46 .NET用言語で一番の糞言語だからね>C++/CLI
149デフォルトの名無しさん
2011/02/05(土) 22:49:37150デフォルトの名無しさん
2011/02/05(土) 22:50:52 互換性?ねーよ。
151デフォルトの名無しさん
2011/02/05(土) 22:54:50 >>150
え。それは、今では使うのは好ましくないとされているレガシー関数群をいまだにお使いになられているからではないですか?
え。それは、今では使うのは好ましくないとされているレガシー関数群をいまだにお使いになられているからではないですか?
152デフォルトの名無しさん
2011/02/06(日) 11:47:30 CとC++に互換性があるとは言わないだろ
CLIの部分については互換性ゼロなんだから
CLIの部分については互換性ゼロなんだから
153デフォルトの名無しさん
2011/02/06(日) 11:51:41154デフォルトの名無しさん
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++;}}
みたいなのはありますでしょうか?どうすれば良いでしょうか?よろしくおねがいします
ストリップメニューを開くと5個ぐらい項があって
3つチェックされているとして、その3という数字を取りたいのですが
どうすれば良いでしょうか?
開く部分の変数はStripMenuItem1です。
for(int = 0;i<StripMenuItem1->項目数;i++){if(StripMenuItem1->子項目->checked == true){temp++;}}
みたいなのはありますでしょうか?どうすれば良いでしょうか?よろしくおねがいします
156デフォルトの名無しさん
2011/02/08(火) 22:55:33 自前で数えろよ、毎回書くのがいやなら関数にしとけ。
157デフォルトの名無しさん
2011/02/08(火) 23:02:04158デフォルトの名無しさん
2011/02/08(火) 23:03:11 >>156
レスありがとうございます
申し訳ありません。理解できません
何か関数があるのでしょうか?
自前で数えるといっても、2個チェックのときは2と自動で取ってこれるようにしたいのです。
そういえば
if(項の変数->checked == true){temp++;}
を何行も書けばいいだけですね。ありがとうございました!
レスありがとうございます
申し訳ありません。理解できません
何か関数があるのでしょうか?
自前で数えるといっても、2個チェックのときは2と自動で取ってこれるようにしたいのです。
そういえば
if(項の変数->checked == true){temp++;}
を何行も書けばいいだけですね。ありがとうございました!
159デフォルトの名無しさん
2011/02/08(火) 23:03:52 >>157
ありがとうございました!
ありがとうございました!
160デフォルトの名無しさん
2011/02/08(火) 23:11:25161デフォルトの名無しさん
2011/02/09(水) 00:53:00 次スレでは「初心者用」を消して、
> - C++プログラミング
> - .NETプログラミング (C#, VB.NET, etc.)
>
> に不自由する方はお引き取りください
とか若干きつめに書いておけばいいじゃね?
何年先になるかは分からんけどw
4,5年ぐらい?ww
> - 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が帰ると思っていたのですがなぜでしょうか?どうすれば良いですか?
cli::array<Type,dimension> ^' から 'WCHAR []' に変換できません。
->ToCharArray();でWCHARが帰ると思っていたのですがなぜでしょうか?どうすれば良いですか?
163デフォルトの名無しさん
2011/02/09(水) 06:31:17 そのWCHAR[]をどうしたいかによる
164デフォルトの名無しさん
2011/02/09(水) 06:33:29165デフォルトの名無しさん
2011/02/09(水) 07:06:40166デフォルトの名無しさん
2011/02/09(水) 07:48:58167デフォルトの名無しさん
2011/02/09(水) 09:38:59 このスレでもC++、.NETの初心者は対象外だけどな
168デフォルトの名無しさん
2011/02/09(水) 11:16:29 >162
文字列操作はこれがひっかかったぞ
ttp://vene.wankuma.com/prog/CppCli_strings.aspx
文字列操作はこれがひっかかったぞ
ttp://vene.wankuma.com/prog/CppCli_strings.aspx
169デフォルトの名無しさん
2011/02/09(水) 11:18:17170デフォルトの名無しさん
2011/02/09(水) 15:36:36 C++と.NETの両方を極めないとCLIは使いこなせないからな
171デフォルトの名無しさん
2011/02/12(土) 16:44:50 Express EditionでもC#プロジェクトと同じソリューションに入れられればいいのになあ
VCのExpress Editionが入門者向けというより達人の縛りプレイ用になってるじゃないか
VCのExpress Editionが入門者向けというより達人の縛りプレイ用になってるじゃないか
172デフォルトの名無しさん
2011/02/12(土) 17:53:40 CLI使わないという選択肢はないのかw
173デフォルトの名無しさん
2011/02/12(土) 18:35:17 そんな選択肢があったらこのスレにいない
174デフォルトの名無しさん
2011/02/13(日) 04:23:39 >>171
金払え
金払え
175デフォルトの名無しさん
2011/02/18(金) 09:47:29 ダイアログで値を入力させて、その値を親ウィンドウで処理したい場合に
どうやって値の受け渡しをすればいいの?
親にpublic関数を用意して呼び出すのが簡単なわけだけど
この.hファイルに親の.hファイルをインクルードすると子のデザイナが壊れる
子ダイアログで親の形を認識させる手段がない
どうやって値の受け渡しをすればいいの?
親にpublic関数を用意して呼び出すのが簡単なわけだけど
この.hファイルに親の.hファイルをインクルードすると子のデザイナが壊れる
子ダイアログで親の形を認識させる手段がない
176デフォルトの名無しさん
2011/02/18(金) 10:00:22 子のプロパティを公開して親からアクセスすればいいんじゃねえの?
177デフォルトの名無しさん
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);
ソートするにはどうしたら良いでしょうか?
こんな感じじゃないかと思うのですが
「関数呼び出しには引数リストがありません。
メンバへのポインタを作成するために '&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デフォルトの名無しさん
2011/02/18(金) 17:09:32 試してないけど、static にして Test::less じゃね?
179デフォルトの名無しさん
2011/02/18(金) 17:41:53 レスありがとうございます
Form1クラスの上で定義したらできました
いまいちよくわからないですが
これからじっくり理由を考えて見たいと思います、感謝
Form1クラスの上で定義したらできました
いまいちよくわからないですが
これからじっくり理由を考えて見たいと思います、感謝
180デフォルトの名無しさん
2011/02/20(日) 21:49:54.49 VC++のスレでこちらの方がふさわしいのではないかと言うことで移ってきました。
VC++2010 Expressでフォームからマウスが外れているときはフォームの透明度を
あげる(薄くする)と言うプログラムを組んでいます。フォームのMouseLeaveイベントと、
MouseEnterイベント発生時にOpacityプロパティを変えることで実現を目論んだのです
が、ウインドウの外枠(サイズを変えるときにドラッグする部分や、上部のウインドウ名
が書かれている部分)にマウスがあると、MouseLeaveイベントが発生して、薄くなって
しまいます。もちろん、ここではたとえ、フォーム外側から移動してきてもMouseEnter
イベントは起きません。
フォームから完全にマウスカーソルがそれた時のみ透明度を高めたいのですが、
どういうイベントを用いればよいんでしょうか?
VC++2010 Expressでフォームからマウスが外れているときはフォームの透明度を
あげる(薄くする)と言うプログラムを組んでいます。フォームのMouseLeaveイベントと、
MouseEnterイベント発生時にOpacityプロパティを変えることで実現を目論んだのです
が、ウインドウの外枠(サイズを変えるときにドラッグする部分や、上部のウインドウ名
が書かれている部分)にマウスがあると、MouseLeaveイベントが発生して、薄くなって
しまいます。もちろん、ここではたとえ、フォーム外側から移動してきてもMouseEnter
イベントは起きません。
フォームから完全にマウスカーソルがそれた時のみ透明度を高めたいのですが、
どういうイベントを用いればよいんでしょうか?
181デフォルトの名無しさん
2011/02/21(月) 01:14:11.85 で、その質問内容のどこがC++/CLIに関係しているんだ?
182180
2011/02/21(月) 07:06:34.79 ってことは、.Net Frameworkのスレ探します。
183180
2011/02/21(月) 07:08:31.22 .net Framework関連のスレって見つからないんですが、どこが適切でしょう。
すみません。
すみません。
184デフォルトの名無しさん
2011/02/21(月) 07:51:25.56 ふらっとあたりで聞けばいい
185デフォルトの名無しさん
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)というパラメーターの関数を定義したんだが、こいつへの渡し方がわからない
誰か教えてくれまいか
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デフォルトの名無しさん
2011/02/27(日) 02:13:39.66 あるプロセスをオープンしようとしてます
読み取り専用で試したが結果は同じ
CLIとしてコンパイルしたWindowsアプリからOpenProcessを呼び出すとフル権限で開ける
C++としてコンパイルしたコンソールアプリからはOpenProcess読み取り専用でもアクセス拒否される
OSはWindows7 64bit
内部のことは分からないですが、OpenProcessは同じ標準process.h内のものを使ってると思う
少なくともソース上ではそういう記述をしてますがコンパイラが何をしてるかまでは定かじゃないです
大きな違いはコンソールアプリであることですが、それが拒否の原因になるんでしょうか?
読み取り専用で試したが結果は同じ
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"))
では、認識出来ないのですが、どのようにすればよろしいのでしょうか?
よろしくお願いします。
テキストボックスに文字が入力され、エンターを押されたら動作する処理を行いたいのですが、
TextChangedイベントに
if(TextBox1->Text->EndsWith("\r\n"))
では、認識出来ないのですが、どのようにすればよろしいのでしょうか?
よろしくお願いします。
188デフォルトの名無しさん
2011/02/27(日) 19:14:15.81 フレームワークの話しはスレ違い
189デフォルトの名無しさん
2011/02/27(日) 19:44:49.91 フレームワークの話はどこですれば良いのでしょうか?
190デフォルトの名無しさん
2011/02/27(日) 19:48:31.21 C#の質問にして、ふらっとC#で聞くといい
191デフォルトの名無しさん
2011/02/28(月) 15:45:27.41 >185
com::ptr で保持して、リリース処理はそっちで対応しちゃあかんの?
com::ptr で保持して、リリース処理はそっちで対応しちゃあかんの?
193デフォルトの名無しさん
2011/02/28(月) 19:01:42.54194デフォルトの名無しさん
2011/02/28(月) 19:28:37.85 >193
それ用のクラスだぜ
あとは .net Framework の System::Runtime::InteropServices::SafeHandle を実装したら?
それ用のクラスだぜ
あとは .net Framework の System::Runtime::InteropServices::SafeHandle を実装したら?
195デフォルトの名無しさん
2011/02/28(月) 20:58:29.72 DirectXのリソースの解放にSafeHandleは使えないんじゃなかったっけ
最近のは知らんけど
最近のは知らんけど
196デフォルトの名無しさん
2011/02/28(月) 23:42:18.77 >187
KeyPress
KeyPress
197デフォルトの名無しさん
2011/03/01(火) 00:17:52.54 >195
詳しく
詳しく
198デフォルトの名無しさん
2011/03/01(火) 01:40:02.26 Direct3D自体の作成/解放が1スレッドに限定されるのに対し
ファイナライザスレッドでどーのこーのみたいな話だったか
使えないというか使う意味がない、みたいな
ファイナライザスレッドでどーのこーのみたいな話だったか
使えないというか使う意味がない、みたいな
199デフォルトの名無しさん
2011/03/10(木) 18:48:24.24 printfとか普通に書いたとき、
なんでprintfがアンマネージのコードって
コンパイラは理解できるの?
それらしい印になるようなキーワードを
特に書いてないような気がするのだが?
なんでprintfがアンマネージのコードって
コンパイラは理解できるの?
それらしい印になるようなキーワードを
特に書いてないような気がするのだが?
200デフォルトの名無しさん
2011/03/10(木) 18:56:54.84 内部的には #pragma managed や unmanaged 指定がされてんじゃね?
#include か #using かで切り分けてるんだと思うけど
#include か #using かで切り分けてるんだと思うけど
201デフォルトの名無しさん
2011/03/15(火) 00:19:49.85 失礼します。
Form1からForm2を開き、Form2を表示した状態でForm1のテキストボックスにフォーカスを合わせたいのですが、何か良い方法はありますでしょうか?
Form2のShownイベントで、Form1->TextBox1->Forcus();を実行してみましたが、Form1が見つかりませんでした。
よろしくお願いします。
Form1からForm2を開き、Form2を表示した状態でForm1のテキストボックスにフォーカスを合わせたいのですが、何か良い方法はありますでしょうか?
Form2のShownイベントで、Form1->TextBox1->Forcus();を実行してみましたが、Form1が見つかりませんでした。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★2 [冬月記者★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★2 [蚤の市★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ ★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★5 [Hitzeschleier★]
- 元草津町議会議員 新井祥子さんの裁判判決を受けて | 全国フェミニスト議員連盟 [少考さん★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 【悲報】ネトウヨの次のターゲット「渡邊渚」に決まるwwwwwwwwwwwwwwwwwwwww [455031798]
- 【悲報】ChatGPT、アダルトモードは2026年に延期!繰り返す!延期! [673057929]
- 竹中平蔵「日米が長年守り続けてき台湾有事に関する曖昧戦略の知恵を一瞬にして無にさせた岡田の責任は非常に重い」 [271912485]
- 履歴書の趣味特技のとこ手芸って書いた
- お こ め 暴 落
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
