俵様
産総研 安藤です
お世話になっております。
> 産総研 知能システム研究部門 ヒューマノイド研究グループ
> にてお世話になっております俵です。
>
> Windows版のOpenRTM-aist-0.4.2-RELEASEのrtc-templateで
> dll用のVC++プロジェクトを生成する方法についてご教授願います。
>
> 具体例として
> http://www.openrtp.jp/openhrp3/jp/controller_pd.html
> にある「プログラミング 」「SamplePD.h 」の項目のような初期化関数
> SamplePDInit
> をエクスポートしたdllプロジェクトを作成したいのですが、現状rtc-template
> を用いてそのようなプロジェクトは自動生成可能でしょうか。
> 以上です。
> よろしくお願いします。
rtc-templateは0.4.2から実行ファイル用vcprojとDLL用vcproj、
それからそれらを統合するslnを生成します。
コンポーネント名 Sample としてrtc-templateでコードを生成すると、
Sample_vc[8|9].sln: ソリューションファイル
Sample_vc[8|9].vcproj: DLL用プロジェクトファイル
SampleComp_vc[8|9].vcproj: EXE用プロジェクトファイル
というファイルが生成されますので、slnをダブルクリックしてソリューション
を開いてください。DLLを作成する場合はSampleというプロジェクトをビルドしてください。
ただし、生成されるコードにはWindows用のコードとして一つまずい点があって、
DLLの初期化関数のexportがされていません。
Sample.h 内の
extern "C"
{
void SampleInit(RTC::Manager* manager);
};
を
extern "C"
{
DLL_EXPORT void SampleInit(RTC::Manager* manager);
};
に書き換えてからコンパイルするようお願いします。
DLL_EXPORTはRTC.hかどこかで定義されているマクロで、
Linuxでコンパイルしても副作用は出ないようになっています。
作成したDLLコンポーネントは、付属のrtcdコマンドでロードして
実行することができます。
以下のようなrtc.confをDLLと同じディレクトリに作成してください。
産総研 知能システム研究部門 ヒューマノイド研究グループ
にてお世話になっております俵です。
Windows版のOpenRTM-aist-0.4.2-RELEASEのrtc-templateで
dll用のVC++プロジェクトを生成する方法についてご教授願います。
具体例として
http://www.openrtp.jp/openhrp3/jp/controller_pd.html
にある「プログラミング 」「SamplePD.h 」の項目のような初期化関数
SamplePDInit
をエクスポートしたdllプロジェクトを作成したいのですが、現状rtc-template
を用いてそのようなプロジェクトは自動生成可能でしょうか。
以上です。
よろしくお願いします。