HSP-NEXTのサンプル(http://hspnext.com/hspkura/hspkura04.htm#contents09)の
getcliptextをそのまま使おうと、以下のように組み込ました。
#uselib "psapi.dll" #cfunc global EnumProcessModules "EnumProcessModules" int,sptr,int,sptr #func global GetModuleFileNameEx "GetModuleFileNameExA" int,int,sptr,int #uselib "kernel32.dll" #cfunc global GlobalLock "GlobalLock" int #cfunc global GlobalSize "GlobalSize" int #func global GlobalUnlock "GlobalUnlock" int #cfunc global lstrcpy "lstrcpy" int,int #cfunc global GlobalAlloc "GlobalAlloc" int,int #define global CreateMutex CreateMutexA #func global CreateMutexA "CreateMutexA" sptr,sptr,sptr #cfunc global GetLastError "GetLastError" #func global GetModuleFileName "GetModuleFileNameA" int,var,int #cfunc global GetCurrentThreadId "GetCurrentThreadId" #cfunc global OpenProcess "OpenProcess" sptr,sptr,sptr #func global GetExitCodeProcess "GetExitCodeProcess" sptr,sptr #func global ExitProcess "ExitProcess" sptr #func global CloseHandle "CloseHandle" sptr #uselib "shell32.dll" #func global ExtractIconEx "ExtractIconExA" int,int,int,int,int #func global Shell_NotifyIcon "Shell_NotifyIcon" int,int #func global SHAppBarMessage "SHAppBarMessage" sptr,sptr #define global ShellExecute ShellExecuteA #func global ShellExecuteA "ShellExecuteA" sptr,sptr,sptr,sptr,sptr,sptr #uselib "user32.dll" #func global OpenClipboard "OpenClipboard" int #cfunc IsClipboardFormatAvailable "IsClipboardFormatAvailable" int #cfunc GetClipboardData "GetClipboardData" int #func global CloseClipboard "CloseClipboard" #func global EmptyClipboard "EmptyClipboard" #func global SetClipboardData "SetClipboardData" int,int #define global GetClassName GetClassNameA #func global GetClassNameA "GetClassNameA" sptr,sptr,sptr #cfunc global GetSystemMenu "GetSystemMenu" sptr,sptr #func global DeleteMenu "DeleteMenu" sptr,sptr,sptr #define global SetWindowLong SetWindowLongA #func global SetWindowLongA "SetWindowLongA" sptr,sptr,sptr #define global GetWindowLong GetWindowLongA #cfunc global GetWindowLongA "GetWindowLongA" sptr,sptr #func global SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr #define global SystemParametersInfo SystemParametersInfoA #func global SystemParametersInfoA "SystemParametersInfoA" sptr,sptr,sptr,sptr #func global GetWindowThreadProcessId "GetWindowThreadProcessId" sptr,sptr #func global AttachThreadInput "AttachThreadInput" int,int,int #func global GetWindowRect "GetWindowRect" sptr,sptr #define global GetWindowText GetWindowTextA #func global GetWindowTextA "GetWindowTextA" sptr,sptr,sptr #define global GetWindowTextLength GetWindowTextLengthA #cfunc global GetWindowTextLengthA "GetWindowTextLengthA" sptr #func global SetForegroundWindow "SetForegroundWindow" sptr #cfunc global GetForegroundWindow "GetForegroundWindow" #define global AppendMenu AppendMenuA #func global AppendMenuA "AppendMenuA" sptr,sptr,sptr,sptr #cfunc global CreatePopupMenu "CreatePopupMenu" #cfunc global TrackPopupMenu "TrackPopupMenu" sptr,sptr,sptr,sptr,sptr,sptr,sptr #func global DestroyMenu "DestroyMenu" sptr #module //getcliptextの中身をここに書いている #global //動作確認 a="" getcliptext a mes a stop
ですが、これを動作させると「配列の要素が無効です」エラーが発生します。
該当行は67行で、以下のようになっています。
IsClipboardFormatAvailable関数を定義しているのに
ret=IsClipboardFormatAvailable(CF_OEMTEXT)
配列だと扱われているというおかしな現象に見舞われています。
このエラーの原因は何でしょうか。また、どうやったら直せるでしょうか。