現在、私が働いている会社は、すべてのソフトウェアに新しいグラフィカル ユーザー インターフェイスを実装しています。新しい GUI は、.NET Framework と相互運用するために多くの古いソフトウェアを必要とする WPF で実装されます。私は最近、ネイティブ C++ で記述されたソフトウェア用の WPF インターフェイスを実装する任務を割り当てられました。
ネイティブ C++ コードをラップする C++/CLI 内にラッパーを実装することにしました。ラッパーによって取得された機能は、C# 内で使用されます。
私が抱えている問題は、C++/CLI プロジェクトからヘッダー ファイル (ネイティブ C++ プロジェクト内にある) を参照するたびに、多くのエラーが発生することです (以下を参照)。プロジェクトがスタンドアロンでビルドされている場合、ネイティブ コードはエラーなしでコンパイルされるため、これは問題です。
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(16): error C2061: syntax error : identifier 'DWORD'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(17): error C2061: syntax error : identifier 'CAtlString'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(17): error C2535: 'CFExeption::CFExeption(void)' : member function already defined or declared
2> C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(16) : see declaration of 'CFExeption::CFExeption'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(18): error C2146: syntax error : missing ';' before identifier 'GetErrorText'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(18): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
等...
- ネイティブ C++ は C++/CLI と完全に互換性がありますか? またはネイティブ C++ コードに変更を加える必要がありますか?
- このタスクへのより適切なアプローチはありますか?
- エラー メッセージの解決策やアドバイスがあれば、お気軽にコメントしてください。