- 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
- 52 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 11:32:08 ]
- これだけ利用者に嫌われてる言語も珍しいな
初心者が質問するたびに使うなと勧められる
- 53 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 13:44:55 ]
- >>50-51
ありがとう。jpegじゃなくてjpgだったという凡ミスしていたことに気づけたわ ・・・一度C#に浮気してみる
- 54 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 13:53:46 ]
- >>52
嫌われているというか、言語自体が初心者お断りだからな 初心者が無謀なことしようとしていたら、そりゃ止めるだろう
- 55 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 14:01:21 ]
- C++も.NETも使いこなせる人が、止むを得ず使うための物。
使わなくていいなら使いたくない。
- 56 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 15:01:38 ]
- 始めようにも資料が無さ過ぎる
MDI作るときどうするかとか ちょっとしたことの逆引きがネット上で全く出てこない ようやくOpenGL表示できるようになって C++の頃の遺産をつかえると思ったのに
- 57 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:33:26 ]
- C#でできるから、それを参照にすればいい
なにもかもC++/CLIで済ませようとしないことをお勧めする
- 58 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 02:27:48 ]
- 嫌ってはいないんだ
ただ何故かこの言語とのファーストコンタクトというか接し方が 一言入れておかないと不幸にしかならなそうな人が多いのよね
- 59 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 09:55:56 ]
- WinFormsデザイナとかC++/CLIにそもそも要らないんだよな
こういうのがあるから「Visual C++ 2008 で簡単GUIプログラミング」みたいな勘違い本やサイトが出て初心者が道を間違える
- 60 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 23:18:00 ]
- 56ですが自分
C++の文法がある程度使えて フォームデザインが総合開発環境上で扱えて 至れり尽くせりじゃん、と思ってとっかかりました 現実は情報が全く無く よくわからないクラスとかいっぱいあって 解説も無くて どうしようと途方にくれていましたが、QTとかよりは 導入コストも再勉強のコストも無いだろうと信じて使ってます。 だって、CやC++だとGUI作るの辛いんだもん っていう理由だとダメですか
- 61 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 23:32:23 ]
- まあ正直C++の名前が付いてるだけで
マネージ部分はC++とは直接関係なくて学び直し必要だし それなら素直にC# C#2.0の範囲までなら多分C++/CLIより簡単だし サンプルも多いし将来WPF/Silverlightとかにも応用できるし C#やっとけば逆にC++/CLIを橋渡し用ぐらいなら書けるようになるし
- 62 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 13:44:31 ]
- けっきょくC++風に文法を汚したC#と普通のC++を無理矢理くっつけただけの代物だからな
- 63 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 14:03:20 ]
- >>62
それを一応形にできたところは評価できる。
- 64 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 19:28:25 ]
- #define健在なり
- 65 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 19:37:10 ]
- #define private public
- 66 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:31:06 ]
- LPVOIDからarray<String^>^に変換したいのですが、アドバイスください。
//////////Form1_Load////////// HANDLE hMap; LPVOID lpBuf; hMap=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,1024,L"View"); if(hMap==NULL){Form::Close();} lpBuf=MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,0); if(lpBuf==NULL){Form::Close();} if(GetLastError()==ERROR_ALREADY_EXISTS){//すでに同じ名前のオブジェクトが存在する lpBuf=Environment::GetCommandLineArgs();//コマンドラインから取得//ここでエラー ///////////ここまで///////////// つまり二重起動時に共有メモリを使いたいのですが、どうしてもできません。 先人方どんなことでもいいので教えてくだせえ。
- 67 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:40:23 ]
- marshal_asとかじゃねえの
- 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の部分については互換性ゼロなんだから
|

|