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


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

C++/CLI part3



1 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 21:13:54 ]
おそらく、.NET開発でデファクトスタンダードに最も近い
であろうC++/CLIについて語ろうぜ!

このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。
.NETのクラスライブラリの使い方といった質問は姉妹スレ「くだすれC++/CLI(初心者用)」に
お願いします。

前スレッドはこちら
(p)pc11.2ch.net/test/read.cgi/tech/1142147319/
(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

369 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:49:20 ]
ありがとうございます。
コンパイルやってみて上手く動きました。

String型文字列をchar型にコピーするのについても質問したいのですが、

c_str[0]=cli_str[0];

というのを繰り返す事でコピーできる事まで調べました。
これを行う為の関数のようなものはあるのでしょうか?

370 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:00:33 ]
・・・みんないっぱい検索キーワード出してるじゃん
まじめに探したの?

371 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:08:35 ]
marshal_contextを使うか、CString/CStringA/CStringWを使うか。
どっちもexpress edtionだと使えなかったと思う。
裏技的にはsprintfを使う方法がある。


372 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:12:30 ]
だから、WideCharToMultiByte があるじゃないか

373 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:17:04 ]
>>372
それは単なるUNICODE-ANSI変換でない?

残りの方法はこんなとこ、使い方はぐぐってね。
Marshal::StringToHGlobalAnsi
Marshal::StringToHGlobalUni
PtrToStringChars

374 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:18:12 ]
>>369
それ仮名・漢字が入ると死ぬよ。

375 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:19:24 ]
Encodingが一番確実か

376 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:25:26 ]
>>373
Unicode -> MBCS変換だろうけど
WideCharToMultiByteは変換に使えないの?

377 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:28:02 ]
>376
そのまえにToArrayしてpin_ptrして、サイズ計算して、領域確保して変換だから
ほかの方法のほうが断然楽



378 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:33:06 ]
>>377
ToArrayよりPtrToStringCharsだろ。
いずれにせよ、pin_ptr<const wchar_t>化してしまえば、
既存のライブラリが使えるので、持ち合わせがあればそんなに悪くない選択肢だと思う。

379 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:04:04 ]
C++/CLIで書いたプログラムって
Monoで動く?


380 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:09:57 ]
動くのもあるし、動かないのもある

381 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:23:46 ]
/clr:safeのものは動く。
ただしSTL/CLIのサポートはまだのようだった。

382 名前:デフォルトの名無しさん [2009/02/01(日) 01:06:00 ]
cl.exe でコマンドラインからコンパイルすると
〜.exe.manifest
なるものも生成され、削除すると〜.exeが起動しなくなります。

exe単体で起動できるようにするにはどうしたらいいのですか?


383 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:13:32 ]
>>382
mt -manifest HOGE.exe.manifest -outputresource:HOGE.exe;#1
これやると、manifestがexe内に埋め込まれるので、manifest無しで動く。

384 名前:デフォルトの名無しさん [2009/02/01(日) 01:29:08 ]
>>383
ありがとう

できました。多謝です

385 名前:デフォルトの名無しさん [2009/02/01(日) 23:49:39 ]
CLIスレ伸びませんねw

実際に使ってるところある?

386 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:27:50 ]
仕事で事前調査用に使ったが、周りに理解されず、本番はVC++6.0でMFC4.2ときたもんだwww

なんか、布教にいい道具があればいいのだけど…。

387 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:41:31 ]
WPFとかに対応しない限りまず消滅すると思った方がいいだろうね。




388 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:25:50 ]
WPFが俺の思ってる物と同じなら、対応するとかナニ言ってるんだって感じ。

まあ、Cのポインタ全部絶滅させられるならどっちでもいいがw

389 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:27:19 ]
>>388
絶滅させられないからこそのC++/CLIじゃないの?w

390 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 08:48:55 ]
今のところMFCのCArchive使ってファイル保存していた古いデータを
.NET側から簡単に読み込むためのモジュールを作るのに重宝してるってぐらいだなぁ。




391 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:55:31 ]
WPFみたいなほとんどマネージコードによるマネージコードのための超高レベルフレームワークを
わざわざC++で使う意味がわからない

392 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:32:22 ]
まぁP/InvokeやCOWだけじゃ困る場面もたまにはあるわけだし。
やってることは凄いんだが評価されないC++/CLI。

とりあえず「C++屋のための.NET言語」という勘違いをされ気味なのはなんとかすれ。

393 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:17:17 ]
進化したMS版C++Builderくらいにしか思ってませんでしたw

394 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:20:41 ]
使いやすいGUIライブラリ付きのC++という捉え方は誤解の元だね


395 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:27:14 ]
どうして誤解なのか解説しちくりくり

396 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 03:16:05 ]
使いやすくないからな。
GUI部分はC#でいいべ。

397 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:07:45 ]
C#の「#」は、++++ で C++++の略でしたっけ?



398 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:21:42 ]
>>396
まあそうなんだが、GUIだけ分けるのもかえって面倒だったりするしな。


399 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:51:47 ]
>>389
何言ってんだお前

400 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:28:07 ]
>>397
別に略ではないな

401 名前:デフォルトの名無しさん [2009/02/04(水) 15:17:24 ]
で、どうしろと?

402 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:50:29 ]
とりあえずチンコでも揉んでみたら

403 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:13:08 ]
チンコとかの話しかしない人に必要な言語は
C++/クリ(ry

C++/CLIは地味だけど、商用デスクトップアプリで
.NET使う場合はよけて通れない言語じゃないかなぁ。
.NETなアプリはまだ本家MS様も出してないよね?
Expression もハイブリッドだし。


404 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:18:08 ]
ネイティブとマネージドのミックスタイプのアプリはMSのプロダクトに増えたけど、
基本的にホスティングがおおいな。
C++/CLIはあまり見かけない。

405 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:53:46 ]
>>404
あ〜。ホスティングだったのか。
勘違いを正してくれてありがトン


406 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:59:00 ]
XNAのWindows向けアセンブリくらいだろうなぁ。

407 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:36:35 ]
俺の言ったカンファレンスじゃ、ベンダーがC++/CLI がベストと言って楽しそうだった



408 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:51:11 ]
WPFも一部C++/CLIだな
XNAのフレームワーク部分はC#だよ

409 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:03:15 ]
>>408
んー? Reflectorで眺めた結果で予想してるだけだが、
Microsoft.Xna.Framework.Game.dll以外はほぼC++/CLIのアセンブリでしょ。
FBXインポータが3MB超なのも、もろにfbxsdkのバイナリとマージしてるからかと。

410 名前:デフォルトの名無しさん [2009/02/05(木) 01:17:05 ]
ネイティブとマネージドのミックスタイプのアプリは現在、どの程度可能
なのか?

C++Builderでは、確かDelphi(Object Pascal)のコードがコンパイルできたと思う
が、こういうことがネイティブとマネージドの間で透過的にできるのか?

もちろん、マネージドコードとネイティブコードの混在ははるかに難しいと
思うが、これを簡単に実現できる方法を提示してもらわないとマネージドは
使う気になれない。

大体、トラブルがリンカエラーで出てくるというのは、エラー箇所の特定が
非常に難しく、最悪の状態ではないか?






まぁ、C#が良いみたいだけど、結局、VBだろが、VC++だろが、C#だろが
Windowsプログラミングになるとどの言語だろが関係ない。

結局、MIcrosofが決めた訳の分からん取り決めに振り回されることになる
から。

411 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:18:58 ]
日記もつけたし今日は寝る。お休み。

412 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:29:23 ]
>>410
その混在を実現しているのが今のところC++/CLIだけ。

#pragmaでネイティブとマネージドどっちのコードを吐くか切り替えられる。
ネイティブクラスとマネージクラスの混在(has Aでの包含)は
透過的ではないものの、手段は用意されている。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:22:24 ]
blogs.msdn.com/bclteam/archive/2006/06/23/644343.aspx

ただのネイティブ関数呼び出しであるP/Invokeですら
導入した瞬間にこんだけの「隙」が出てきてしまうのだから
簡単に実現できる方法って言われてもお花畑だよなぁ。

理想に対する泥臭い現実解としてはイイ線いってると思うけどねぇC++/CLI。

414 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:58:44 ]
とりあえずガンガン使っていくので今後ともよろしく>C++/CLI

使って情報を出さないとね。ググった結果に引っかかるサンプル増やせば
ちったあ底辺広がるだろうし。

415 名前:デフォルトの名無しさん [2009/02/10(火) 09:57:12 ]
バイナリフォーマットで100MBほどのデータを
シリアライズしようとしているのですが、
デシリアライズするときにメモリを数倍も消費して
ロードできないのですが、

デシリアライズをカスタマイズしないとできないのでしょうか?

GC::Collectするとメモリがいっぱい回収できます。


416 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:58:03 ]
諦めてXmlReaderかストリーミングでLINQ to XML使った方がいい

417 名前:415 mailto:sage [2009/02/10(火) 23:00:48 ]
結局、自前で読み書きするようにしました。




418 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:54:41 ]
>>392
> やってることは凄いんだが評価されないC++/CLI。

MSがC#を前面に押し出したから見向きされなくなったよね。
それにC++はもともと敷居が高い言語だけど、
マネージドが入るとさらに敷居が高くなるからね。
員数仕事じゃ使うの無理じゃない?


419 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:58:36 ]
>>418
>MSがC#を前面に押し出したから見向きされなくなったよね。
その頃はまだmanaged C++といってほとんど試作品」だったよ

420 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:59:16 ]
C++/CLIのコンパイラのソース出してくれないかなあ。
CLIじゃなくて、JVMのバインディング、面白そう。

421 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:00:00 ]
>>419
「その頃」違いです。

422 名前:デフォルトの名無しさん [2009/02/11(水) 17:01:01 ]
そもそも、.NETはお金を頂くソフトウェア作るには不向き
・遅い
・ソース丸見え
・フレームワークインストール必須
・FAでは絶対に無理

枚挙に暇がない

423 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:35:54 ]
今時そんなのが問題になるのか?


424 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:48:12 ]
>・ソース丸見え
あっちこちでネガネガしてる奴のようだ。ほっとくに限る。

425 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:58:12 ]
組込みでC言語、VB6を少々

しかやった事無いけど、CLRでデータロガ作ってみた。
Windowsの知識はほとんど無いけど、すごく簡単ね

Win32Apiでやろうと思ってたけど、自分のツール程度ならCLRでいいかな。
とりあえず田舎で本が手に入らないからゴリ押し(ほぼC言語w)で作成中、
勉強すればもっと便利に使えると思うんだけど・・・。

皆さんはどうやってC++/CLRを勉強したの?

426 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:00:29 ]
勉強?
どこをどう勉強する必要があるんだ??


427 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:17:43 ]
>>425
C++の経験者が使う言語だと思ったほうがいい。
Win32APIやCのライブラリを使わないならVB.netやC#やったほうがいい。



428 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:18:12 ]
デフォルトでスマートポインタなCOMの一種と考えるとそれほどでもない

429 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:36:59 ]
C++とC#の経験があればそのまま使える
というか,そういう人にしか旨味のない言語
簡単だと思うのはC#やVB.NETを触ったことがないから

430 名前:425 mailto:sage [2009/02/12(木) 03:33:22 ]
>>426-429
ありがとう、意見を参考に、ずっとC#のサンプルコードいじってた。
とりあえず腹減ったので寝ようかな。

>>427
当初Win32APIをやろうと思ったけど、開発効率重視で諦めました。

*組込み屋なんで速度と柔軟な処理が可能かが気になりましたが、
そんな難しいもの作るわけじゃ無いので。

431 名前:デフォルトの名無しさん [2009/02/14(土) 19:15:48 ]
E-mail欄ってほとんどE-mail欄の役割は果たしてないよね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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