DLL CALL方法を教えてください
- depth:
- 0
前の投稿
-
次の投稿
|
親投稿
-
子投稿なし
|
投稿日時 2007-10-30 21:24
hal_so
投稿数: 1
■dbMAGIC V8.2を使用しておりますが、プログラムにて下記の外部プログラムを使用したいのですが、C言語仕様がわからないため DLL CALLの書き方がわかりません
教えていただけないでしょうか?
↓↓↓
----------------------------------------------------------------
使用したいDLLは以下の内容です。
http://www.red.oit-net.jp/y-mori/soft/
calen32.dll フリーソフト・・・作成者:Yoshifumi Mori 氏
内部関数名
CalLunarCalendarFromDate()
機能 日付を旧暦(太陰太陽暦)に変換します。
書式 BOOL CalLunarCalendarFromDate(const LPDATE_T date, LPLUNAR_CALENDAR lc)
説明 指定した日付を旧暦(太陰太陽暦)に変換します。
引数 IN date 旧暦に変換したい日付(年月日)を指定します。
date.year
date.month
date.day
date.dayofweek 使用しません。
OUT lc 日付に対応した旧暦が格納されます。
lc.year
lc.month
lc.day
lc.leap
lc.dayofweek
戻り値 旧暦に変換できた場合は TRUE を返します。変換できない場合あるいはエラーが発生した場合は FALSE を返します。
FALSE を返した場合は、GetLastError() でエラーの詳細を確認できます。
ERROR_INVALID_PARAMETER(87) - パラメータが間違っています。
ERROR_CAL_TRANSLATION_NOT_SUPPORTED - 旧暦に変換できる範囲を超えています
。
----------------------------------------------------------
引数内の内容 ・・・解凍した後のテキストファイルから取り出した内容です。
typedef struct { /* (グレゴリオ暦) gregorian calendar */
int year; /* 年 (1873-2099) year */
int month; /* 月 (1-12) month of year */
int day; /* 日 (1-31) day of month */
int dayofweek; /* 曜日 (0-6) day of week */
} DATE_T, *LPDATE_T;
typedef struct { /* 旧暦 (太陰太陽暦) lunar calendar */
int year; /* 年 (1872-2099) year */
int month; /* 月 (1-12) month of year */
int day; /* 日 (1-30) day of month */
int leap; /* 閏月 (0:no, 1:yes) leap month */
int dayofweek; /* 曜日/六曜 (0-5) rokuyou number */
} LUNAR_CALENDAR, *LPLUNAR_CALENDAR;
--------------------------------------------------------
↑↑↑
以上の資料から、試してみました。
●dbMAGIC 内で試した内容↓
コール U=ユーザPRC :'@CALEN32.CalLunarCalendarFromDate' パラ 10 ロック No
パラメータ10個の内訳は
引数の型 '8888888888' ←間違いだと思いますが、エラーでは無かったです。
date-int-year 数値 4
date-int-month 数値 2
date-int-day 数値 2
date-int-datfweek 数値 2
lc-int-year 数値 4
lc-int-month 数値 2
lc-int-day 数値 2
lc-int-leapday 数値 2
lc-int-dayofweek 数値 2
これ以外に、関数のDLLCALLも試してみましたが、機能しませんでした。
成功した部分は、
コール U=ユーザPRC :'@CALEN32.CalNameOfKyusei' パラ 3 ロック No
パラメータ10個の内訳は
引数の型 '4A'
inp番号 数値 2
out旧暦六曜日 文字 128
これについては、inp番号に数値を入れると数字に対応する六曜日がでました。
※CALLDLL用引数調査 UDF DllExist Ver 0.8 でも調査しましたが、
知識不足でわかりませんでした。
よろしく、お願いします
教えていただけないでしょうか?
↓↓↓
----------------------------------------------------------------
使用したいDLLは以下の内容です。
http://www.red.oit-net.jp/y-mori/soft/
calen32.dll フリーソフト・・・作成者:Yoshifumi Mori 氏
内部関数名
CalLunarCalendarFromDate()
機能 日付を旧暦(太陰太陽暦)に変換します。
書式 BOOL CalLunarCalendarFromDate(const LPDATE_T date, LPLUNAR_CALENDAR lc)
説明 指定した日付を旧暦(太陰太陽暦)に変換します。
引数 IN date 旧暦に変換したい日付(年月日)を指定します。
date.year
date.month
date.day
date.dayofweek 使用しません。
OUT lc 日付に対応した旧暦が格納されます。
lc.year
lc.month
lc.day
lc.leap
lc.dayofweek
戻り値 旧暦に変換できた場合は TRUE を返します。変換できない場合あるいはエラーが発生した場合は FALSE を返します。
FALSE を返した場合は、GetLastError() でエラーの詳細を確認できます。
ERROR_INVALID_PARAMETER(87) - パラメータが間違っています。
ERROR_CAL_TRANSLATION_NOT_SUPPORTED - 旧暦に変換できる範囲を超えています
。
----------------------------------------------------------
引数内の内容 ・・・解凍した後のテキストファイルから取り出した内容です。
typedef struct { /* (グレゴリオ暦) gregorian calendar */
int year; /* 年 (1873-2099) year */
int month; /* 月 (1-12) month of year */
int day; /* 日 (1-31) day of month */
int dayofweek; /* 曜日 (0-6) day of week */
} DATE_T, *LPDATE_T;
typedef struct { /* 旧暦 (太陰太陽暦) lunar calendar */
int year; /* 年 (1872-2099) year */
int month; /* 月 (1-12) month of year */
int day; /* 日 (1-30) day of month */
int leap; /* 閏月 (0:no, 1:yes) leap month */
int dayofweek; /* 曜日/六曜 (0-5) rokuyou number */
} LUNAR_CALENDAR, *LPLUNAR_CALENDAR;
--------------------------------------------------------
↑↑↑
以上の資料から、試してみました。
●dbMAGIC 内で試した内容↓
コール U=ユーザPRC :'@CALEN32.CalLunarCalendarFromDate' パラ 10 ロック No
パラメータ10個の内訳は
引数の型 '8888888888' ←間違いだと思いますが、エラーでは無かったです。
date-int-year 数値 4
date-int-month 数値 2
date-int-day 数値 2
date-int-datfweek 数値 2
lc-int-year 数値 4
lc-int-month 数値 2
lc-int-day 数値 2
lc-int-leapday 数値 2
lc-int-dayofweek 数値 2
これ以外に、関数のDLLCALLも試してみましたが、機能しませんでした。
成功した部分は、
コール U=ユーザPRC :'@CALEN32.CalNameOfKyusei' パラ 3 ロック No
パラメータ10個の内訳は
引数の型 '4A'
inp番号 数値 2
out旧暦六曜日 文字 128
これについては、inp番号に数値を入れると数字に対応する六曜日がでました。
※CALLDLL用引数調査 UDF DllExist Ver 0.8 でも調査しましたが、
知識不足でわかりませんでした。
よろしく、お願いします
投票数:0
平均点:0.00
投稿ツリー
- DLL CALL方法を教えてください (hal_so, 2007-10-30 21:24)