ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

DLL CALL方法を教えてください

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 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 でも調査しましたが、
知識不足でわかりませんでした。
よろしく、お願いします
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約