[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 メーリングリストの案内