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

わんくま同盟

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

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

■102361 / 5階層)  C++にC#を加えてひとつのexeに出来ますか
□投稿者/ とっちゃん (787回)-(2023/09/07(Thu) 15:46:32)
No102359 (hojoR さん) に返信

> 目的は、既存のC++データを共有しC#の便利な機能(主にユーザIF)を利用したいことであり、
> 「ひとつのexe」は必須条件ではありませんでした。
>
> C++とC#をそれぞれ別の exe にする方向で進めてみます。
>
exeはひとつで、中でいろいろ呼び出しと、ひとつのexeにして問うので方向性が違うので
誤解を招きやすいのかな?と思います。

MFCアプリで C++/CLI オプションを有効にした場合今までがどうであったかにかかわらず
以下のようになります。

C++/CLIのexe
MFCのDLLと、言語DLL
VC++のランタイム類(CRT)
C#のDLL
C#のDLLで参照される各種DLL(フレームワークに含まれないもの)

>
>>C#のコードは別スレッドで動くということですか?
>
> 別スレッドではありません。
> 質問時に誤って「スレッド」と書いたので誤解を招いたかもしれません。
> もうしわけありません。
> 言い直しますと、C#の処理をC++から関数のように呼び出す、ようなイメージです。
> (C#の処理が終わるまでC++は待機する)
>
通常のメソッド呼び出しで動かせればよいということですね。
其れであれば、Unmanaged(Native)<->Managedでのメモリやり取り(主に文字列や配列等)が
ある程度でそれほど難しくはないと思います(双方の知識は必要ですが)。

>
>>メモリに常駐させているデータというのがどういうものか
>
> CListを派生したいくつかの自前クラスが、親・子・孫・ひ孫…のように階層的に構成されています。
> それぞれの自前クラスには、int・double・ポインタなどの単一変数や配列などが含まれます。
> リストは、追加・削除・順序の入れ替えがされます。
> 表現が不適当かもしれませんが、Windowsのファイルシステムに似ています(階層的なフォルダ群に様々なものが入っている)。
>
CList(MFCのテンプレートクラス)を利用して階層的にデータ管理しているということですね。
自前のクラスも含め、直接C#では読めないので、C#でも読み書きできるデータ型を用意して(List<T>を使って定義するなどもあり)
C++/CLI部分でコンバートしてC#に渡すという形になります。


> 興味を持ったのは「Native アプリと .NET アプリを連動するいくつかの方法」です。
>
セッション資料へのリンクです。このリポジトリがそのままサンプルプロジェクトにもなっています。
https://github.com/Tocchann/dotnetlab1811/blob/master/Session.md

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[4]: C++にC#を加えてひとつのexeに出来ますか /hojoR →Re[6]: C++にC#を加えてひとつのexeに出来ますか /hojoR
 
上記関連ツリー

C++にC#を加えてひとつのexeに出来ますか / hojoR (23/09/06(Wed) 17:01) #102354
Re[1]: C++にC#を加えてひとつのexeに出来ますか / 魔界の仮面弁士 (23/09/06(Wed) 17:28) #102355
  └ Re[2]: C++にC#を加えてひとつのexeに出来ますか / radian (23/09/06(Wed) 18:58) #102356
    └ Re[3]: C++にC#を加えてひとつのexeに出来ますか / とっちゃん (23/09/06(Wed) 21:15) #102357
      └ Re[4]: C++にC#を加えてひとつのexeに出来ますか / hojoR (23/09/07(Thu) 11:15) #102359
        ├ Re[5]: C++にC#を加えてひとつのexeに出来ますか / radian (23/09/07(Thu) 15:03) #102360
        └ C++にC#を加えてひとつのexeに出来ますか / とっちゃん (23/09/07(Thu) 15:46) #102361 ←Now
          └ Re[6]: C++にC#を加えてひとつのexeに出来ますか / hojoR (23/09/08(Fri) 09:45) #102364 解決済み
            └ Re[7]: C++にC#を加えてひとつのexeに出来ますか / HattariB (23/09/08(Fri) 12:17) #102365 解決済み
              └ Re[8]: C++にC#を加えてひとつのexeに出来ますか / hojoR (23/09/08(Fri) 20:19) #102366
                └ Re[9]: C++にC#を加えてひとつのexeに出来ますか / hojoR (23/09/11(Mon) 16:01) #102368 解決済み
                  └ Re[10]: C++にC#を加えてひとつのexeに出来ますか / ななし (23/09/28(Thu) 11:44) #102436

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信