[openrtm-users 00660] Re: dll用VC++プロジェクト生成について
俵 崇文@AIST
tawara-takafumi @ aist.go.jp
2008年 11月 25日 (火) 18:25:37 JST
安藤様
丁寧な回答ありがとうございます。
さらに質問ですが、今後Windows環境でrtc-templateが自動的に
初期化関数をDLL_EXPORTで修飾する予定はありますか?
あらかじめrtc-templateで修飾しても支障がないように
思えますがどうでしょうか?
以上です。
よろしくお願いします。
Ando Noriaki wrote 2008/11/17 15:49:
> 俵様
>
> 産総研 安藤です
>
> お世話になっております。
>
>> 産総研 知能システム研究部門 ヒューマノイド研究グループ
>> にてお世話になっております俵です。
>>
>> 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でコンパイルしても副作用は出ないようになっています。
>
--
_/_/_/_/_/_/_/_/_/_/_/_/_/
株式会社 スプリング(http://www.spring.cc/)
つくば事業所
俵 崇文
俵 崇文@スプリング<tawara @ spring-inc.co.jp>
俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
TEL:029-861-9960
FAX:029-861-9961
_/_/_/_/_/_/_/_/_/_/_/_/_/
openrtm-users メーリングリストの案内