Windowsフォームのアプリケーションで使用したいMFC/ATLプログラム用のコードが大量にあります。このコードを/ clrを有効にしてコンパイルし、基本クラスを見つけるためにこのコードを "変換"する最も簡単な方法は何ですか? CObject、CString、CFile、テンプレート?MFC/ATLコードをWindowsフォームAppに変換する
答えて
実行する必要のある「変換」はあまりありません。単に/ clrを有効にしてコンパイルするだけです。ビルドエラーが発生しますが、膨大な数はありません。
この決定はではなく、とする必要があります。/clrのしきい値を超えたら、いくつかのことを犠牲にします:
ビルドのパフォーマンスは、特にリンクが悪化します。 C++/clrプロジェクトをインクリメンタルにリンクすることはできません。
追加の読み込みレイヤーが.Exeまたは.Dllに追加されます。特に静的な場合は、初期化の順序に注意する必要があります。これはVS2005の方がずっと良くなっていますが、まだまだ問題があります。私は正しくアンロードされない/ clr DLLプロジェクトを持っており、私はなぜそれを理解することができませんでした。このような問題の1つの症状は、デバッグからメモリリーク検出のdumponを終了しないということです。
プロジェクトに機能を追加すると、管理またはネイティブの実装を選択できます。プロジェクトの他の場所でネイティブ処理されたものを管理する場合は、選択する必要があります。古い実装を修正する必要がありますか?
管理対象ネイティブのしきい値を超えると、パフォーマンスとデバッグの影響があります。
例外処理が複雑になります。
プロジェクト全体で/ clrスイッチを反転するのではなく、よりターゲットを絞ったアプローチをお勧めします。あなたの大きな図書館をネイティブに保つ。混合モード/ clrブートストラップ/ラッパーを作成します。この「シンプロキシ」は、ネイティブライブラリの安定性とパフォーマンスを維持しながら、ネイティブライブラリへのアクセスの利点を提供します。
ネイティブライブラリのダイアログ(または悪いことにSDI/MDIビュー、hereを参照)がある場合は、ディスプレイを配線するのが難しい場合があります。しかしそれはそれに値するだろう。
VC++。net、誤解していない場合は、新しいバージョンのMFCがあります。プロジェクトをVC.netプロジェクトに変換し、クラスをマネージコードにゆっくりと変換します。これは、すべてを書き直す巨大なジャンプではなく、ゆっくりとすべてを再設計する変更をもたらします。 Btw、MVCデザインパターンで内部動作からインタフェースを分離していない場合。
- 1. windowsフォームを画像に変換する
- 2. .NET:WindowsフォームをWindowsコントロールに変換する方法
- 3. ASP.NET XSD(データセット)をWindowsフォームに変換する
- 4. Mac用のPythonコードをWindows用に変換する
- 5. Windows Phone AppをSilverlight Web Appに変換するにはどうすればよいですか?
- 6. C++コードをC#コードに変換する
- 7. フォームを文字列に変換する
- 8. dbgrid autofitをフォームに変換
- 9. WindowsメッセージIDをテキストに変換する
- 10. vb6アプリケーションをWindowsサービスに変換する
- 11. VB.NETコードをVBScriptに変換する
- 12. MATLABコードをFortranに変換する
- 13. MATLABコードをPythonに変換するツール
- 14. jQueryコードをmootoolsに変換する1.11
- 15. アンマネージドC++コードをC#に変換する
- 16. 文字をASCIIコードに変換する
- 17. 再帰コードをLINQに変換する
- 18. Pythonコードをcythonに変換する
- 19. JavaコードをGroovyに変換する
- 20. テキストをコードに変換する
- 21. ASP.netコードをPHP&mysqlに変換する
- 22. jQueryコードをJavascriptに変換する
- 23. PHP(JSON)をASPコードに変換する
- 24. HTMLコードをXLS/XLSXに変換する
- 25. xamlをC#コードに変換する
- 26. Windowsフォームのコンテンツを変更する
- 27. 情報をフォームからフォームJavascriptに変換する
- 28. JavaコードをJRubyに変換
- 29. コードjavaをPHPに変換
- 30. Pythonにコードを変換
大規模なプロジェクトで/ clrフラグを混乱させてしまったので、私はdefします。ネイティブコードの大部分をDLLに分離することが進んでいくことに同意します。 – Nick