C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: MS VC++より.NETが提供している機能を利用したいが


(過去ログ 124 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■73804 / inTopicNo.1)  MS VC++より.NETが提供している機能を利用したいが
  
□投稿者/ BASE1 (1回)-(2014/11/05(Wed) 15:50:14)

分類:[.NET 全般] 


MS VC++より.NETが提供している機能を利用することはできるのでしょうか。
例えば、multi-thread poolの生成、管理、利用など.NETがサポートしている便利な機能。

どうも、サンプルコードがほとんどC#で書かれたので、MS VC++でも可能でしょうか。

宜しくお願い致します。

引用返信 編集キー/
■73808 / inTopicNo.2)  Re[1]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ とっちゃん (268回)-(2014/11/05(Wed) 17:29:47)
とっちゃん さんの Web サイト
No73804 (BASE1 さん) に返信
>
> MS VC++より.NETが提供している機能を利用することはできるのでしょうか。
> 例えば、multi-thread poolの生成、管理、利用など.NETがサポートしている便利な機能。
>
> どうも、サンプルコードがほとんどC#で書かれたので、MS VC++でも可能でしょうか。
>
> 宜しくお願い致します。
>
MS VC++ がどのバージョンか?にもよりますが、C++/CLI でビルドすることで利用できます。
なので、可能か?という意味では可能です。

ただ、multi-thread pool が意味するものによっては、わざわざ .NET のものを使わなくても
concurreny 名前空間のライブラリ(同時実行ランタイム)を使うことで事足りる場合が多いと思います。

というか。。。VS2010 かより最近のVSを利用しているのであれば、同時実行ランタイムを
使っても便利さの度合いはほとんど変わりありません(ものによってはこっちのほうが実装しやすい場合もある)。


引用返信 編集キー/
■73816 / inTopicNo.3)  Re[1]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ Azulean (359回)-(2014/11/05(Wed) 22:47:49)
C++ で .NET の機能を利用すると、C++/CLI という似て非なる言語で作ることになります。
また、C++/CLI プロジェクトはネイティブ資産とマネージコードをつなぐ役割(相互運用性の確保)に使うことを考えて欲しいと示されている開発環境なので、「C++ で .NET を使いたい」という発想は、将来痛い目を見る可能性があります。


https://support2.microsoft.com/kb/3001686/ja
「C++/CLI は、マネージ コード と アンマネージ コードの相互運用を行う目的でのみ使用してください。」

引用返信 編集キー/
■73822 / inTopicNo.4)  Re[2]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ 774RR (186回)-(2014/11/06(Thu) 06:21:31)
.NET Framework と名がつくものの機能は manage と呼ばれる機構の上に成り立っている。
C# や VB (VB6 は除く) で作ったプログラムは、この「マネージ」機構の上で動作している。

一方 C++ で作ったプログラムは、この「マネージ」機構を使っていない。
native とか unmanage とか呼ばれているわけだ。

マネージ機構とアンマネージ(ネイティブ)機構とは設計思想のスタート自体がまったく違っている。
開発の新旧の都合で
・マネージ機構の中から、部分的にアンマネージ機構の機能を使うことは考慮済み
・アンマネージ機構の中からは、尋常の方法ではマネージ機構を使うことはできない
という特徴がある。

「 .NET が提供する便利な機能」はすべてマネージなので、これらを
VC++ のアンマネージコードから直接簡単に使うことは不可能と言っていい。

C++ 言語でなく C++/CLI 言語という似て非なる言語を使うと C++ の文法でマネージ機構を使えるけど
(それはすなわちアンマネージコードではなくなってしまうということ)
現在 C++/CLI を積極的に使う理由は無くて(解説にあるとおり、相互運用の目的でのみ使う)
それならば C# にいっちゃうほうが圧倒的に簡単。

結論
MSVC++ という「製品」は pure C++ と C++/CLI の2種類の異なる言語をサポートしている。
.NET の機能を使うなら C++/CLI でプログラムを書けばよい(が、非推奨)
pure C++ から .NET の機能を使うことは困難。

その意味で MSVC++ で .NET の機能を使えるか?という質問の答えは Yes
ただし、そのときの言語はもはや C++ ではなくて C++/CLI
C++/CLI での新規開発は非推奨
引用返信 編集キー/
■73824 / inTopicNo.5)  Re[3]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ BASE1 (2回)-(2014/11/06(Thu) 17:12:12)

皆さん丁寧なご指導本当に有難うございました。
お陰さまで、曲がり道を避ける事ができました。
VC++で新しいMS Visual Studio 2012でmultithreadをやります。

心からお礼を申し上げます。

引用返信 編集キー/
■73825 / inTopicNo.6)  Re[4]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ とっちゃん (269回)-(2014/11/06(Thu) 17:20:29)
とっちゃん さんの Web サイト
No73824 (BASE1 さん) に返信
> VC++で新しいMS Visual Studio 2012でmultithreadをやります。
>
老婆心からですが。。。最新のVSは、「Visual Studio 2013」です。

頑張ってください。


引用返信 編集キー/
■73826 / inTopicNo.7)  Re[5]: MS VC++より.NETが提供している機能を利用したいが
□投稿者/ BASE1 (3回)-(2014/11/06(Thu) 18:06:00)

とっちゃん様

> 最新のVSは、「Visual Studio 2013」です

有難うございます。


> concurreny 名前空間のライブラリ(同時実行ランタイム)を使うことで事足りる場合が多いと思います。

非常に重要な情報で、大変感謝しております。
実は自分の中に、multithreadより、"Concurrency Runtime" を先にチャレンジしてみたいのです。

いま丁度下記のものを読もうとしています。
<<Comparing the Concurrency Runtime to Other Concurrency Models>>


本当に有難うございました。






No73825 (とっちゃん さん) に返信
> ■No73824 (BASE1 さん) に返信
>>VC++で新しいMS Visual Studio 2012でmultithreadをやります。
>>
> 老婆心からですが。。。最新のVSは、「Visual Studio 2013」です。
>
> 頑張ってください。
>
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -