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


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

C++/CLI について語ろうぜ Part2



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


598 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:47:58 ]
>>597
それが C++/CLI + フォームデザイナではないのか?
あくまでネイティブにこだわる?

599 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:56:11 ]
>あくまでネイティブにこだわる?

これは詭弁。

実体は、M$が非ネイティブにこだわる。
gccですんなりコンパイルできちゃったらWinが単なる開発マシンで、
ターゲットマシンが別0$になっちゃう。

600 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:02:02 ]
C# で mono とか tcl/tk とか何かならわかるが、
pure C++ で Win32 アプリがRADで開発できても、
>gccですんなりコンパイルできちゃったらWinが単なる開発マシンで、
>ターゲットマシンが別0$になっちゃう。
ってことにはならないと思うが。

601 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:17:25 ]
>ってことにはならないと思うが。

ってことにはならない、じゃなくて、M$が阻止する。
売る側からしたら端末みたく膨大な数を売るものだったら1台あたりに0$代払いたくない。

開発マシンとターゲットマシンと別々なのはふつー。
Winの前の時代なら、UNIXで開発&Makeして汎用機(メインフレム)に転送していた。

602 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:18:57 ]
>UNIXで開発&Makeして汎用機に転送していた。

あ、やっぱ、コンパイルは汎用機でやってたね。

603 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:21:44 ]
>>601
そういう意味じゃなくてさ、MS の作る Win32 アプリの RAD の出してきたコードを
gccでコンパイルしても、実行できる環境が Linux にある?
Wine がそんなに実用的になってる?

604 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:48:30 ]
>>603
Windowsヘッダーがgcc環境に移植されてM$が慌てたのを知らないの?

RADなら製品としては成立しなくて終了したっぽいけど、Delphi / Kylix、 C++ Builder / C++ Builder Linux があるお。

605 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:53:54 ]
>>603
あ、C++ BuilderにwxWidgetsのプラグインがあってポトペタできる。
wxWidgetsだからLinuxとMacは対応できる。

606 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 11:57:58 ]
>>605
MS がクロスプラットフォームな UI フレームワークを採用した RAD を
出すわけないと思うけど。pure C++ になったとしても、Win32 べったりでそ。
次はそれに文句言うの?

それとも Wine があるから
>gccですんなりコンパイルできちゃったらWinが単なる開発マシンで、
>ターゲットマシンが別0$になっちゃう。
だ、って主張?

>>604
漏れも cygwin は使ってるけど、そういうおまいは使ってるのか?
きつい言葉だが、現実見えてる?



607 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:00:06 ]
じゃ、wxWidgetsだ!

MFCアプリケーションをLinuxに移植する
ttp://www.ibm.com/developerworks/jp/linux/library/l-mfc/

608 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:55:39 ]
おおい、C++/CLI スレなんだかから、
RAD にかんしては mono で Windows.Form
が使えるかどうかってのがメインの話題にならんの?
そういう俺は Hello world しか試したことがないよ。
mono では。

609 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:01:01 ]
mono=Hello worldツール

610 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:06:45 ]
RHD = Rapid "Hello world" Development

611 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:07:06 ]
RAD = RApid "Hello world" Development

612 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:12:21 ]
CLI = Common "Hello World" Language Infrastructure

613 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:13:08 ]
HAL = HALlo world is typo.

614 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:25:47 ]
V$ドトネトは、ドトネト Framework の機能を最大限に利用することによって、Hello worldの生産性を劇的に向上させます。

615 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:08:48 ]
質問です。
int sample(int (* func)(void*), void* arg);
というCの関数を呼び出したいのですが、argにマネージオブジェクトを引き渡す手段に悩んでいます。
struct Arg { gcroot<array<int>^> obj; };

int on_callback(void* arg) {
   Arg* parg = (Arg*)arg;
   Console::WriteLine(part->obj->Length);
}
を用意して
Arg arg;
arg.obj = gcnew array<int>(4);
sample(on_callback, &arg);
みたいな方法を考え付いて一見問題なく動いているように見えますが、何か問題があったりもっと一般的な方法があったりするんでしょうか。
ていうかon_callbackはなぜ#pragma unmanagedじゃなくても動くんだろう?

616 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:54:58 ]
>>615
その方法でいいと思うよ。
>ていうかon_callbackはなぜ#pragma unmanagedじゃなくても動くんだろう? 
その為の混合モードだから。関数はマネージドとネイティブの両方のエントリーを持っている。
#pragma unmanagedを使うのは DllMainとlongjmpのときくらいじゃなったかな。



617 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 18:20:31 ]
>>616
ありがとうございます。
これで実装を進めることにします。

618 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 01:42:07 ]
IntPtrで与えられたポインタをマネージ型のByte配列に変換したいのですが、できるのでしょうか?
アンマネージへの変換はMSDNの参照などによりわかったのですが、
マネージへはまだわかっておりません。
アンマネージに変換して使用して配列を扱ってもいいのですが、なるべくマネージ型でまとめたいと思いまして・・・
そもそも無理だとしたらIntPtrのReadByteを使うしかありませんか?
どなたかご教授ください。

619 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 01:49:26 ]
>>618
なにがやりたいのかさっぱり和漢ねえ

620 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 07:42:28 ]
それへ知ってハッキングでもする気か?

621 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 08:04:03 ]
ポインタにするにはちょっとGCさえごまかせば済む話だが、
配列はオブジェクトなので新しく作る必要がある。
C++/CLI使っててポインタを使わない意味はないだろ。

622 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:11:18 ]
何やりたいかわからんが、Marshal::Copy とかか?

623 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:13:53 ]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |   
     |        | ∧_∧ |   |   
     |        |( ´∀`)つ ミ |   
     |        |/ ⊃  ノ |   |
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |    ミ C++/CLI

624 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 16:38:39 ]
懐かしすぎるぞそのAAw

625 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 19:27:06 ]
配列が三つもあるとかあほすぎ

626 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:46:23 ]
618への回答にinterior_ptrっていいだろうかw?
マネージ型には違いないぞ。



627 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 09:56:33 ]
たぶん、IntPtr に格納されたアドレス値をバイト配列に変換したい訳じゃないとは思うんだが(w

628 名前:デフォルトの名無しさん [2007/11/01(木) 09:58:54 ]
c++/cliを使うメリットってなんすか?
C++に中間吐かせるなんて、ビャーネが知ったら泣くぞ

629 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 10:05:13 ]
C++ を越えた変態になれる

630 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 10:09:50 ]
ま、C++と文法的に相性が悪かったCOMの悪夢の続きを見れるとか。

631 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 10:28:51 ]
.netライブラリを使える

632 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 10:43:22 ]
ドトネトライブラリはイラネ

既存のC/C++ライブラリを使いたいわけ。

633 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 13:46:59 ]
>>632
そういう人がなぜこのスレッドにいるのかわからん。

634 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 13:53:20 ]
何ていうか、分からないから見てみる、みたいな。

.NET「本音」相談室
ttp://www.atmarkit.co.jp/fwin2k/dnitpro/honneqa01/honneqa01_01.html

635 名前:デフォルトの名無しさん [2007/11/01(木) 19:00:04 ]
VB.netからとりあえず早さを求めてC++/CLIやり始めたんですが、
//Form1.h
#pragma unmanaged
class hogehoge{};
#pragma managed
Form1を作ったときに自動生成されたやつ
private: System::Void start(System::Object^ sender, System::EventArgs^ e) {
hogehoge test;
}
とやると動くのは分かったんですが、デザイナに

クラス Form1 はデザインできますが、ファイルの最初のクラスではありません。Visual Studio では、デザイナはファイルの最初のクラスを使用する必要があります。クラスがファイルの最初のクラスになるようにクラス コードを移動して、デザイナを再度読み込んでください。
と怒られてしまいます。
いい方法を教えてくださいmm

636 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:04:11 ]
>>635
IDEが作成したファイルに手を加えるのはあまりよくない。
別のファイルに書こう。



637 名前:デフォルトの名無しさん [2007/11/01(木) 19:11:14 ]
>>635
ええ、絶対間違ってると思ってtest.cppってファイルを作って同じのを書いたのですが、
hogehoge という型指定子が見つかりませんと言われてしまうんです。

638 名前:635 [2007/11/01(木) 19:24:35 ]
//test.cpp
class hogehoge{};
//Form1.h
>>635の#pragma managedより下
って書いてみたんですけど、ヘッダーがコンパイルされたときには
test.cppはまだコンパイルされてないからこういう事になってるんですかね・・・?

639 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:28:28 ]
>>637
先にCをやってきな

640 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:38:55 ]
>>639
C++もだろ。

641 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 19:39:25 ]
だな。

642 名前:635 [2007/11/01(木) 19:41:44 ]
www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html
とりあえずここに書いてることは大体理解出来るんですが、
足がかりになるようなページ教えていただけませんか?

643 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 20:05:07 ]
ヘッダと cpp の関係がわかってないのかな?
Form.h が メインの cpp に include されてコンパイルされる前に、hogehoge なるクラスが
定義されていないといけないんだよ
だから、hogehoge をヘッダに定義して、Form1.h で include すればいいんだけど
この説明の意味、わかる?

次はたぶん、混合型はサポートされていません。て、エラーになると予言(w

644 名前:635 [2007/11/01(木) 20:28:37 ]
>>643
ヘッダーを作らないといけないのを全く理解してませんでした。
IDEでクラスを作って見よう見まねでいじったらうまく行きました^^
丁寧にありがとうございましたmm

645 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 10:16:10 ]
まぁ、別に cpp を include してもいいんだけどな

646 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 12:23:45 ]
いやいや、リンクしたときに定義が衝突するでしょ



647 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:58:28 ]
それよりおれは>>635の1行目が気になる

648 名前:デフォルトの名無しさん [2007/11/03(土) 09:36:00 ]
それよりおれは>>647の1行目が気になる


649 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:27:44 ]
C++/CLIって、仕事あるか?


650 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 14:08:18 ]
>>647
実は俺も気になってた。

651 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 16:50:50 ]
>>649
3ds/maxの会社

652 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 17:38:42 ]
CLI穴だらけじゃん(`Д')ノ
じゃあみんなで補完しあおうぜ(=゚ω゚)ノ
議論盛り上がりまくり(゚д゚)ウマー
ドトネト対応(・∀・)イイ!

ってのが製作者の狙いということか( ゚Д゚)ハッ
いや…なん違うような(;´Д`)

653 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:55:56 ]
なすてnullptrなんて作たんだろ、nullで統一してよ

654 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:15:35 ]
ぬるぽ

655 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:37:10 ]
>>653
> なすてnullptrなんて作たんだろ、nullで統一してよ
'\0' と混同する人がいないとも限らないからかな…

656 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:52:35 ]
#define null 0としているプログラムは探せば結構ありそうに思う。
そんなコードでも変更なしに使えるようにという配慮では?



657 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 18:41:43 ]
え C++/CLIはヘッダーに全部実装するのが流儀だろ
cppファイルなんていらんのですよ

658 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 20:35:57 ]
実体化しないのかよ
まさか、プリコンパイルヘッダに全部うわなんだおまえやめr

659 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 10:19:51 ]
>>649
このあいだ、基本は.NETライブラリで、ネイティブ用のI/Fも欲しいって仕事があって
何を使っても良かったし、ずっと自分が面倒みる事になる事は分ってたから
C++/CLI のラッパーで対応したが。

レアケースなのは間違いないな。

660 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 10:29:36 ]
>基本は.NETライブラリで、ネイティブ用のI/Fも欲しいって

これ、何ていうドトネトアプリの破滅。

661 名前:デフォルトの名無しさん [2007/11/11(日) 16:39:40 ]
>>え C++/CLIはヘッダーに全部実装するのが流儀だろ
あ、やはりそうなのか?

662 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:10:26 ]
こより的には、そのやり方はちょっと…

663 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 19:56:20 ]
C#でいう「インターフェイス メンバの明示的実装」をやるにはどうすればいいの?

664 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 20:35:39 ]
自己解決
private: virtual Object^ Clone() = ICloneable::Clone { ... }

665 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 21:43:18 ]
CLI 部分については C++/CLI って C# よりむしろ VB に近いと思う瞬間の一つだな
raise とか

666 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:15:02 ]
>>662
マイナー杉



667 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 11:38:24 ]
>raise とか

これ、何てDelphi?

668 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 22:11:41 ]
2008入れてみた。
STL/CLI使えるぽ。

669 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:02:11 ]
.net fx 2.0 指定でも使える?

670 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:45:51 ]
この言語って、どの程度流行ってんの?

671 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:49:10 ]
各国で静かなブームですよ

672 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:01:19 ]
TreeViewとListViewにxVN_GETDISPINFO相当の機能がなかったので、
Controlから派生させて自作したよ('A`)
(VirtualModeもパフォーマンスがよくなかった・・・)

C#だとAPIや定数の定義が面倒だが、C++/CLIだとWin32ヘッダそのままインクルードして使えるから楽でいい。

だがそんなことするくらいなら最初っから
つMFC

・・・そんな感じだ。

673 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:21:38 ]
メッセージぐらいならわざわざControl使わんでもどうとでもなるが。
Notify系メッセージならWM_REFLECTION付きで当該コントロールに来るし。

674 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:22:08 ]
いやWTL最強

675 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 21:35:28 ]
>>673
メッセージぐらいではどうにもならんのですよ。
WM_NOTIFY + WM_REFLECTでメッセージ引っ掛けても、先が続かん

676 名前:デフォルトの名無しさん [2007/11/27(火) 18:43:18 ]
Windowsプログラムを組む必要がない場合
CLIを勉強する意味ある?



677 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 18:44:30 ]
Windows以外で動く独自のCLIを開発する場合とか。

678 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 18:48:44 ]
( ゚д゚ )( ゚д゚ )( ゚д゚ )…

679 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:51:24 ]
独自にCLRを実装するなら、CLI の勉強は必要だな
C++/CLI は不要だが

680 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:41:11 ]
Object型の変数の値が、値型Tのボクシングされたオブジェクトであるかどうかを
調べるにはどうすればいいんでしょうか
C#では obj is T とするところです

681 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:58:20 ]
参照型同様dynamic_cast<T^>(obj)がnullptrになるか否かで判定すればいい。

682 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 08:42:54 ]
safe_cast ?

683 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:51:10 ]
castに失敗した時に、例外が発生したほうがいいならsafe_cast。
nullptrを返してほしいなら、dynamic_cast。
if分の条件でスマートに使いたいなら、T::typeid->IsSubclassOf(obj)もしくはIsInstanceOfType()の組み合わせで。

684 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 08:30:52 ]
public ref class A : public Generic::IEnumerable<Object^>
{
public:
virtual Generic::IEnumerator<Object^>^ GetEnumerator();
};
コンパイルエラーになるのだが、こういう実装はだめなの?

685 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 08:47:51 ]
エラーメッセージぐらい書(ry
System::Collections::IEnumerable::GetEnumeratorの方の宣言がない

686 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 08:57:42 ]
>>685
public ref class A : Generic::IEnumerable<Object^>
{
public:
virtual Generic::IEnumerator<Object^>^ GetEnumerator();
virtual Collections::IEnumerator^ GetEnumerator();
};
してみたけど、だめでした。

error C2556: 'System::Collections::IEnumerator ^A::GetEnumerator(void)' : overloaded function differs only by return type from 'System::Collections::Generic::IEnumerator<T> ^A::GetEnumerator(void)'
with
[
T=System::Object ^
]



687 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 09:29:04 ]
そりゃ返値が違うだけの同名同引数メソッドを宣言できるわけないだろ?
別名定義する必要がある。リファレンスのinterface classの解説見れ

688 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 09:51:04 ]
>>687
以下でコンパイル通りました。
public ref class A : Generic::IEnumerable<Object^>
{
public:
virtual Generic::IEnumerator<Object^>^ GetEnumerator() = Generic::IEnumerable<Object^>::GetEnumerator;
virtual Collections::IEnumerator^ GetEnumerator2() = Collections::IEnumerable::GetEnumerator;
};
ありがとうございました。

689 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:15:44 ]
GetEnumerator2のほうはprivateにしたほうが

690 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:34:04 ]
>>689
早速private: + sealedにしました。
重ね重ねありがとう

691 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:56:00 ]
マネージクラスも共変できたらいいのにと思う。

692 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:58:42 ]
共変ができないのはなんでだろう
CLI 上の制約?

693 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 02:20:10 ]
>>691
Genericsは共変/反変をサポートしてるけど
標準クラスライブラリと有名どころの言語がサポートしていないので事実上死に設定

694 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 02:33:11 ]
たしかデリゲートもIL上は共変・反変できたような。

695 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:08:19 ]
C#はデリゲートなら共変反変おk

696 名前:デフォルトの名無しさん [2007/12/08(土) 17:56:12 ]
(C/C++スレから誘導されて来ました)
VS2005にてC++/CLI使用中です。

Hoge()というアンマネージドクラスが既にあり、これをマネージ環境で使うことを考えています。
このとき、

Hoge *hoge0 = new Hoge();
Hoge *hoge1 = new Hoge();
Hoge *hoge2 = new Hoge();
 ・・・

というのを

Hoge *hoge[10];
hoge[0] = new Hoge();
hoge[1] = new Hoge();
hoge[2] = new Hoge();
 ・・・

のよう配列にするにはどうしたらよいでしょう?
(マネージ環境だと Hoge *hoge[10]; の時点でCLI配列使え!って怒られてしまうんですよね・・・)



697 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:16:54 ]
普通にできるはずだが?
エラーメッセージとか番号とかちゃんと書けよ

698 名前:デフォルトの名無しさん [2007/12/08(土) 18:21:12 ]
C++/CLIでSTLって使えないんですかね。。。
アンマネージ内で使いたいんですが、#include<list>とか<vector>とかすると
error C2039: 'free' : '`global namespace'' のメンバではありません。 e:\program files\microsoft visual studio 8\vc\include\cstdlib
error C3861: 'free': 識別子が見つかりませんでした e:\program files\microsoft visual studio 8\vc\include\malloc.h
とエラーが出ます。。。








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

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

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