//************************************************************************** //Skeleton of trmod.dll(ワークデータ編集) //************************************************************************** // #include #include #include #include //外部参照(DLL)関数の定義 #ifdef __cplusplus //この分岐宣言はC言語(*.C)としてコンパイルする時は省略可 extern "C" { #endif __declspec(dllexport) void TRMODINIT(int*); __declspec(dllexport) void TRMODMENUITEM(int*,char *); __declspec(dllexport) void TRMODPARAMETER(int*); __declspec(dllexport) void TRMODGETBASICMODEL(float*); __declspec(dllexport) void TRMODMODWORK(double*,double*,double*,int*,int*, float*,unsigned char*,int*,int*); __declspec(dllexport) void TRMODFREE(); #ifdef __cplusplus //この分岐宣言はC言語(*.C)としてコンパイルする時は省略可 } #endif //もしTRMODPARAMETER などでダイアログを表示する場合は、以下のDllMain関数で //インスタンスをグローバル変数(hInst)に保存しておいて下さい。それ以外はDllMain関数は、 //不要です。 HINSTANCE hInst; BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD fdwReason,LPVOID lpvReserved) { hInst=hinstDll; return TRUE; } //本DLL内でのグローバル変数を定義 //DLL内でローカルに使用する関数を記述 //(これらの関数を後ろのほうで記述する場合や、別ファイルで記述する場合は、 //それらの関数のプロトタイプ宣言を記述) /////////////////////////////////////////////////////////////////////////////////// //************************************************************************** //外部参照(DLL)関数の引数説明 //[I -] 入力のみ(関数内では参照するだけにして下さい) //[- O] 出力のみ(参照時は未定義になっています。必ず値を返して下さい。) //[I O] 入出力 // // //====================================================================== void TRMODINIT(int *irc) //[- O] Return Code(=0:FALSE =1:TRUE) // 機能:処理の初期化 // 説明:TRYCUT起動時のWM_CREATE時に一度だけ参照されます。 // 作業エリアの確保などに利用しますが、特に必要ない場合は、 // 本関数自体の省略も可です。 // 初期化が正常な場合は、*irc は必ずTRUEを設定して下さい。 // 本関数省略時は、*irc=TRUE とみなします。 // *irc=FALSEで返した場合DLLは動作しませんので、各種プロテクト処理は、 // ここで行なって下さい。 { *irc=TRUE; return; } //====================================================================== void TRMODMENUITEM(int *lang, //[I -] 言語環境 (=0:日本語 =1:他言語) char *item) //[- O] メニュー表示部の文字列 // 機能:メニュー表示部の文字列を設定 // 説明:メニュー表示部の文字列を言語環境ごとに設定。日本語環境でのみ // 使用される場合は、特に場合分けは必要ありません。 // 本関数は省略不可です。 { if( *lang ) { strcpy(item,"??????(&?)"); } else { strcpy(item,"??????(&?)"); } } //====================================================================== void TRMODPARAMETER(int *irc) //[- O] Return Code // 機能:処理パラメータの設定 // 説明:ファイルダイアログで対象ファイルを選択後「OK」を指示 // したタイミングで参照されます。 // 処理に関連するパラメータを設定するI/Fで、ダイアログ // などを表示する処理などに利用して下さい。 // 正常な場合は、*irc は必ずTRUEを設定して下さい。 // 本関数自体は省略可で、その場合*irc=TRUE とみなします。 { *irc=TRUE; } //====================================================================== void TRMODGETBASICMODEL(float *topb) //[I -] 基準形状のZ値先頭アドレス // topb=NULLの場合は設定されて // いません。 // 機能:基準形状の情報を得る // 説明:基準形状のデータを参照しながらデータを編集したい場合に、利用する // ものです。本関数にてZ値アドレスをDLL内のグローバル変数に保存して // 利用することを想定しています。 // 通常必要ない場合は本関数を省略して下さい。 // TRMODMODWORKがCALLされる直前で参照されます。 { } //====================================================================== void TRMODMODWORK(double *pmax, //[I -] ワークの最大値XY double *pmin, //[I -] ワークの最小値XY double *wpitch, //[I -] ワークのピッチ(精度) int *xmax, //[I -] X方向格子数 int *ymax, //[I -] Y方向格子数 float *top, //[I O] Z値列(X*Y個)の先頭アドレス unsigned char *topc, //[I O] 属性(PENKI,PENなど)の先頭アドレス int *topn, //[I O] 切削ブロック番号の先頭アドレス int *irc) //[- O] Return Code(=0:FALSE =1:TRUE) //機能:ワーク形状の編集 //説明:ワ−ク形状や格子ごとの各種属性を編集する。修正するのは、 // *top,*tpc,*topn 配列内の値だけにして下さい。 // ただし、TRYCUT側のメモリ省略の設定により、あらかじめ topn は、 // NULL が設定されている場合があります。このような場合は、topn は // 修正しないようにして下さい。 // top と topc は、TRYCUTが正常に動作している場合は、必ずNULL以外 // の値が設定(領域が確保)されています。本関数は省略不可です。 { *irc=TRUE; } //====================================================================== void TRMODFREE() // 引数なし // 機能:作業エリアの開放など // 説明:TRYCUT終了時のWM_DESTROYイベント発生時に参照されます。 // TRMODINITなどで作業エリアを確保している場合などに、 // その作業エリアの開放(FREE)のために利用します。本関数は省略可です。 { }