現在、アンマネージ C++ で記述されたコンソール アプリケーションがあります。ソース コードは、エントリ ポイントmain
とその他の関数で構成されています。他のプロジェクト、特にマネージ C++ から使用できるように、このコードから DLL を作成する必要があります。(別の質問: この目的のためにラッパー クラスを作成する必要がありますか?)
マネージ/アンマネージ C++ と DLL の作成についてほとんど何も知らないので、このチュートリアルに従い、VS2010 のみを使用して (CMake を使用せずに) シンプルな Hello World DLL を起動して実行することができました。
ただし、私のこのプロジェクトには多くの依存関係 (ポイント クラウド ライブラリなど) があるため、 PCL チュートリアルで説明されているように、通常は CMake を使用して Visual Studio 2010 ソリューションを生成し、それを実行可能ファイルにビルドします。CMake を使用して、DLL に組み込まれる VS2010 プロジェクトをビルドするにはどうすればよいですか?
私の問題を要約するには:
- 多くの依存関係を必要とするアンマネージ C++ コードのプロジェクトがあります。
- このコードから、マネージド C++ から呼び出すことができる DLL を作成したいと考えています。
追加情報: Windows 7、Visual Studio 2010 Ultimate、CMake 2.8.10.2
編集: 行を変更して CMake を使用しましたが、期待どおりに機能しました。これはヘッダー ファイルに追加したものですが、正しい方向に進んでいますか?
MyCode.h
#ifdef MyLib_EXPORTS
#define API_DECL __declspec( dllexport )
#else
#define API_DECL __declspec( dllimport )
#include <iostream>
#include <pcl/...>
etc...
API_DECL void myFirstFunction();
API_DECL void mySecondFunction();
#endif
MyCode.cpp: ソース ファイルに変更を加えていませんが、変更する必要がありますか?