0

hereのCodeproject TreeGridの例に基づいて構築されたC ++プロジェクトのカスタムListview Treegridがあります。コードは、時間の経過とともに大幅に変更されました。

C++ プロジェクトを C# Winforms に移植する必要があります。Listview グリッド用の c++ dll を作成し、Winforms で相互運用することを考えています。

Winforms で管理されていない Listview コントロールを使用する際に問題が発生しましたか? リストビューをWinformsに移植/書き直すべきですか? (私も楽しみにしていない仕事です)

4

2 に答える 2

1

マネージドコードで書き直した方が良いと思います。

通常、相互運用性は機能しますが、マネージ コードが好まれるのには理由があります。ランタイムは非常に多くのことを処理してくれるので、全体を簡単に維持できます。一部のタスクでは、境界を越えることが問題になる場合があります。たとえば、コード アクセス セキュリティも失われます。ここにいくつかの良い情報があります。

そうでない場合は、常に .NET 開発者と C++ 開発者がそれを維持する必要があります。

C++/ネイティブ コード自体に問題はありませんが、2 つを混在させます。必要がない限り、長期的には混合しないほうがよいと思います。

とはいえ、時間と予算の制約があります。相互運用性には理由があります。ビジネスの観点から正当化するのにどうしても時間がかかりすぎる場合は、上記の推奨事項を撤回します。

于 2012-05-17T22:05:33.170 に答える
0

私があなただったら、リストビューを C# で書き直すか、C# で書かれ、Winforms で使用するための無料または有料のグリッドを探すことを好みます。

この作業を行った後、コードをサポートする必要があることを忘れないでください。これには、おそらくバグの修正と機能の追加が含まれます。コードがどのように機能し、どのようにデバッグするかを正確に理解することをお勧めします。また、ニーズにより適した Listview を作成する機会も与えられます。

この C++ Listview を使用して Winforms で使用する場合、これは非常に困難です。しかし、それを使用することにした場合、私が考えることができる 2 つのオプションがあります。

  1. オブジェクトを保持し、C# でデータを表示する C++/CLI で Listview のラッパーを作成します。これは、データを Listview から C# オブジェクトに移動するために多くの変換コードを記述する必要があることを意味しますが、仕事。

  2. DllImport を使用し、ListView をデータソースとして操作すると、すべてのデータを正確に取得できるかどうかはよくわかりませんが、醜い CLI コードを作成することはできません...

まとめると、UI コードには 1 つの言語を使用することをお勧めします。UI に選択した言語は C++ ではなく C# です。

幸運を...

于 2012-05-17T22:23:02.607 に答える