本ページには広告が含まれています。
DLL(API等)の関数を使用する事ができるようになります。64bitの DLLは呼び出せません。
- 構文
- DEF_DLL 関数名( 型, 型, ... ): 戻り型: DLL名
- 引数
- 型 省略可
- int
- long
- bool
- uint
- hwnd
- string
- Wstring
- float
- double
- word
- dword
- byte
- char
- pchar
- Wchar
- pWchar
- boolean
- longlong
- SafeArray
- 戻り値
参照引数(値変更あり)の場合は Var 宣言を付ける
構造体:型を { } にて展開して書く
配列の場合は型に [] を付ける
※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
ヌルポインタを渡す時は NULL定数を使用してください。
VBAでの書き方
[ ]内は省略可能です。
| 引数 | 説明 |
|---|---|
| name | プロシージャ名。大文字・小文字を区別します。 |
| libname | プロシージャが含まれるDLLファイル名を指定。拡張子「.dll」は省略可能。 |
| aliasname | |
| arglist | プロシージャを呼び出すときに渡される変数。 |
| type | プロシージャが返す戻り値の型。 |
以下のようにPtrSafeと書かれているものは64bitなのでUWSCでは使えません。
arglistは引数で以下のように指定します。
| 引数 | 説明 |
|---|---|
| ByVal | 値渡し |
| ByRef | 参照渡し |
| varname | プロシージャに渡される引数の変数の名前 |
| type | 戻り値の型 |
UWSCでの書き方
以下はarglistの書き方です。配列の場合「[]」をつけ、参照渡し(VBAでByRefのとき)は「Var 」をつけます。
記述例
| 引数 | 値 |
|---|---|
| 関数名(name) | GetCaretPos |
| 型(arglist(varname)) | {long, long} |
| 戻り型(type) | long |
| tableL名(libname) | user32 |
typeはPOINTAPIは構造体なので中身を展開して{ }で型を囲む。
以上からUWSCで宣言するには以下のようになります。
